我显然是旧版本的python,当我尝试使用
时subprocess.check_call(...)
返回错误,指出check_call
不存在。
有同等的吗?顺便说一句......我需要了解当我使用subprocess.call(...)
答案 0 :(得分:0)
您应该可以使用call
,因为check_call
实际上是subprocess.call()
的包装器,它存在于Python 2.4中。您可以编写自己的check_call
函数:
(警告:我没有测试,因为我没有Python 2.4):
class CalledProcessError(Exception):
def __init__(self, returncode, cmd, output=None):
self.returncode = returncode
self.cmd = cmd
self.output = output
def __str__(self):
return "Command '%s' returned non-zero exit status %d" % (self.cmd, self.returncode)
def check_call(*popenargs, **kwargs):
retcode = subprocess.call(*popenargs, **kwargs)
if retcode:
cmd = kwargs.get("args")
if cmd is None:
cmd = popenargs[0]
raise CalledProcessError(retcode, cmd)
return 0
而不是subprocess.check_call(...)
,您只需使用相同的参数调用自己的check_call(...)
。