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

我错过了什么吗?

有帮助吗?

解决方案

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

其他提示

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

例如,Program Files将是:

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

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

r" \程序文件“

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top