我在Windows 7 x64上遇到了Python 2.7.6的问题。请帮忙查一下。
我有 abc.py
import subprocess
subprocess.check_call('abc(1).bat')
print 'done'
abc(1).bat 只有一行:
ver
运行abc.py无法启动abc(1).bat,并在CMD控制台上显示错误消息:
'abc' is not recognized as an internal or external command,
operable program or batch file.
Traceback (most recent call last):
File "C:\test\abc.py", line 3, in <module>
subprocess.check_call('abc(1).bat')
File "C:\Python27\lib\subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'abc(1).bat' returned non-zero exit status 1
如果我在.bat文件名中不使用括号,则不会出现此问题。有人可以帮忙解释一下吗?
答案 0 :(得分:4)
这是因为即使在命令行中,运行abc(1).bat
也会返回错误。它需要以"abc(1).bat"
运行。如果您将Python代码修复为。
subprocess.check_call('"abc(1).bat"')
这一切都很好。
中说明