在“”引号中包含完整的文件路径并不能使其正常工作。
cmd =“C:\ Program Files(x86)\ iTunes \ iTunes.exe”
如果要执行的文件路径中有空格,subprocess.popen 会抛出无法找到可执行文件的错误。
前段时间我找到了一个解决方案,其中涉及使用一些奇怪的符号或它们的组合...不幸的是我找不到那个例子的代码。如果有人能指出我正确的方向,我将不胜感激。提前致谢。
答案 0 :(得分:2)
字符串中的反斜杠会触发转义字符。由于Windows完全支持使用正斜杠作为路径分隔符,所以只需执行以下操作:
cmd = "C:/Program Files (x86)/iTunes/iTunes.exe"
无需摆弄\\
或原始字符串。 ;)
答案 1 :(得分:1)
使用:
cmd = '"C:\\Program Files (x86)\\iTunes\\iTunes.exe"'
或
cmd = r'"C:\Program Files (x86)\iTunesr\iTunes.exe"'
答案 2 :(得分:0)
尝试逃离您的cmd行:替换
"\"
通过
"\\"
并且
' '
(空格)
'\ '
(反斜杠+空格)。
答案 3 :(得分:0)
文件路径:
file_path= 'E:\\te st.py'
然后你应该:
file_path = '"E:\\te st.py"'
然后它起作用,我的Main.py作为show blow:
import subprocess
doc = '"E:\\te st.py"'
p = subprocess.Popen ('python ' + doc , stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
output = p.communicate()
print output
和te st.py是:
print 'hello world'