简单来说,我的代码如下:
file = 'C:\\Exe\\First Version\\filename.exe'
os.system(file)
运行此程序时,WindowsError被引发,找不到指定的文件。我发现问题在于"第一个版本"之间的空白。那么我能找到一个规避问题的方法吗?
PS:如果变量"file"将作为arg传递到另一个func,该怎么办?
如何从python执行程序的可能副本?由于路径中有空格,os.system失败
在路径上加引号是可行的:
file = 'C:\\Exe\\First Version\\filename.exe'
os.system('"' + file + '"')
但更好的解决方案是使用subprocess模块:
import subprocess
file = 'C:\\Exe\\First Version\\filename.exe'
subprocess.call([file])
谢谢,它起作用了。我知道子进程会更好,但我想从脚本内部调用的文件实际上不是.exe文件,但某些类型的文件以后缀结尾,如.qgi,而此类.qgi文件不能简单地由子进程调用,因为我尝试了,并引发了错误。
@突触——试着用p=subprocess.popen(file, shell=True),然后用p.wait()
@AGF——谢谢你&#x