python子进程文件不存在

2024-09-30 02:25:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我发誓我什么都没改变,而且这一周前还管用。但现在每次我呼唤一条路操作系统或者subprocess.call,我收到错误“错误:文件挪威银行不存在”。在

这是我的代码:

import subprocess 
subprocess.call('"H:/2012/yada yada yada/swanrun" NBK')

为了让它正常运行,我在H:/2012/yada yada yada/中打开命令提示符,然后输入“swanrun NBK”,这很好用。如果我运行相同的代码,但是删除末尾的'NBK',即swanrun应该运行的文件,swanrun成功运行,但是当然不知道要运行哪个文件。请帮忙!在


Tags: 文件代码import错误银行callsubprocess末尾
2条回答

请使用"NBK"的完整路径,或设置当前工作目录:

import subprocess 

path = "H:/2012/yada yada yada/"
subprocess.call('"H:/2012/yada yada yada/swanrun" NBK', cwd=path)

编辑: 通常,如果文件参数不是完全限定的路径,应用程序将在其预定义的数据目录(如果有)、可执行文件的目录、当前工作目录或与当前工作目录或可执行文件目录相关的某个目录中查找。cwd选项设置工作目录,您应该将其设置为可以成功运行“swanrun NBK”的目录,如问题中所述。在

子进程需要一个列表,而不是字符串。如果只提供一个字符串,它会将整个内容视为可执行文件名,而不会在空格上拆分。它试图找到一个名为“H:/2012/yada yada yada/swanrun”NBK的程序,它将是一个具有该标题的文件。相反,请尝试subprocess.call(['"H:/2012/yada/yada yada/swanrun"', 'NBK']),它加载带有参数“NBK”的程序“H:/2012/yada/yada yada/swanrun”。在

相关问题 更多 >

    热门问题