In my program, I have a function runScript():
def runScript():
subprocess.call(['echo', 'hello'])
I have seen many similar examples in the Python documentation, so I assumed this would work. However, when I call this function in my program, it returns a WindowsError.
WindowsError: [Error 2] The system cannot find the file specified
Why does this happen? How can I fix it?
The
echocommand is built in to the Windows shell,cmd.exe. It is not an external program that can be called without the shell. Therefore, yoursubprocess.call()needs to specifyshell=True.(Also, the shell will handle splitting up the command for you, so I’ve used the simpler single-string style of passing the command.)