在我的程序中,我有一个函数runScript():
def runScript():
subprocess.call(['echo', 'hello'])
我在 Python 文档中看到过许多类似的例子,所以我认为这会起作用。 但是,当我在程序中调用此函数时,它会返回一个 WindowsError。
WindowsError: [Error 2] The system cannot find the file specified
为什么会这样? 我该如何解决它?
echo
命令内置于 Windows shell 中,cmd.exe
。它不是可以在没有 shell 的情况下调用的外部程序。因此,您的subprocess.call()
需要指定shell=True
。
subprocess.call('echo hello', shell=True)
(此外,shell 将为您处理拆分命令,因此我使用了更简单的单字符串样式来传递命令。