gpt4 book ai didi

python - 为什么 Python subprocess.check_call 无法启动 abc(1).bat? (文件名中的括号)

转载 作者:可可西里 更新时间:2023-11-01 11:18:46 26 4
gpt4 key购买 nike

我在 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 文件名中没有使用方括号,则不会出现此问题。谁能帮忙解释一下?

最佳答案

这是因为即使在命令行中,运行 abc(1).bat 也会返回错误。它需要作为 "abc(1).bat" 运行。如果您将 Python 代码修复为。

subprocess.check_call('"abc(1).bat"')

一切正常。

原因在 Microsoft FAQ Question 中说明。 .

关于python - 为什么 Python subprocess.check_call 无法启动 abc(1).bat? (文件名中的括号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22815822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com