Windows 错误与 Python

1 投票
4 回答
5391 浏览
提问于 2025-04-15 12:20

我正在写一段代码,目的是在我电脑的一个文件夹里运行一个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

你需要正确处理可执行文件路径中的空格。

撰写回答