Windows 错误与 Python
我正在写一段代码,目的是在我电脑的一个文件夹里运行一个exe文件,但出现了一个错误,提示...
WindowsError: [错误 3] 系统找不到指定的路径。
这是我代码的一部分:
exepath = os.path.join(EXE file localtion)
exepath = '"' + os.path.normpath(exepath) + '"'
cmd = [exepath, '-el', str(el), '-n', str(z)]
print 'The python program is running this command:'
print cmd
process = Popen(cmd, stderr=STDOUT, stdout=PIPE)
outputstring = process.communicate()[0]
我已经导入了subprocess模块,还用到了from subprocess import *。
比如说,我的exe文件的路径在我展示的代码第一行是这样的:
exepath= os.path.join('/Program Files','next folder','next folder','blah.exe')
我是不是漏掉了什么?
4 个回答
0
如果我没记错的话,你不需要像第二行那样把可执行文件的路径加上引号。
补充:我刚刚在附近的Windows电脑上测试了一下。发现无论路径是否加引号,Popen的表现都是一样的。所以这并不是个问题。
1
除了正确处理空格和其他可能引起问题的字符(比如 /),你还可以使用8个字符的旧DOS路径。
比如,"Program Files"可以写成:
Progra~1,记得在最后两个字符后加上 ~1。
补充说明:你可以在字符串前面加一个 r,这样就变成了原始字符串。Python会逐个字符地读取这个字符串。就像这样:
r "\Program files"
3
你需要正确处理可执行文件路径中的空格。