Windows错误和python

时间:2009-06-18 15:20:12

标签: python popen

我正在研究一些代码,它应该在我的系统上的文件夹中运行一个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]

我已导入子流程,也来自子流程导入*

例如,这就是我的exe文件位置在我显示的代码的第一行中的样子:

 exepath= os.path.join('/Program Files','next folder','next folder','blah.exe')

我错过了什么吗?

4 个答案:

答案 0 :(得分:3)

您需要正确地转义可执行路径中的空间

答案 1 :(得分:1)

除了正确转义可能导致问题的空格和其他字符(例如/)之外,您还可以使用8个字符的旧DOS路径。

例如,Program Files将是:

Progra~1,确保为最后两个字符附加~1。

编辑:您可以在字符串的前面添加一个r,使其成为原始文字。 Python会读取字符的字符串字符。像这样:

r“\ Program files”

答案 2 :(得分:0)

如果我没记错的话,你不需要引用可执行的文件路径,就像在第二行中那样。

编辑:好吧,只是抓住附近的Windows框并对其进行测试。无论是否引用路径,Popen的工作方式都相同。所以这不是问题。

答案 3 :(得分:0)

AFAIK,除非在运行程序中涉及cmd.exe,否则无需用引号括起路径。

此外,您可能希望使用环境变量ProgramFiles来查找“Program Files”的实际位置,因为这取决于区域设置,也可以使用TweakUI进行调整。