我正在研究一些代码,它应该在我的系统上的文件夹中运行一个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')
我错过了什么吗?
答案 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进行调整。