1

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

4 回答 4

3

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

于 2009-06-18T15:24:27.557 回答
1

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

例如,程序文件将是:

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

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

r "\程序文件"

于 2009-06-18T15:31:21.053 回答
0

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

编辑:好吧,只是抓住附近的 Windows 盒子并测试了它。无论路径是否被引用,Popen 的工作方式都是一样的。所以这不是问题。

于 2009-06-18T15:23:54.393 回答
0

cmd.exeAFAIK,除非涉及运行程序,否则无需将路径括在引号中。

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

于 2009-06-18T15:28:53.070 回答