当我通过子流程运行命令时,退出状态为1,而我的打印或错误均未出现。
这是我的代码:
def generate_model(self):
if not ((self.username == None) or (self.password == None) or (self.database == None)):
cmd = "python -m pwiz -e %s -H %s -u %s -P %s %s > %s"%(self.engine,self.host,self.username,self.password,self.database,self.database+".py")
print subprocess.check_call(cmd)
else:
raise ValueError
终端打开后,该命令将询问输入。之后,它与exit status 1
当我直接在命令提示符下运行同一命令时,它可以正常工作
subprocess.check_call()
默认情况下不运行该外壳程序,因此重定向运算符>
将不起作用。要重定向标准输出,请stdout
改为传递参数:
with open(filename, 'wb', 0) as file:
check_call([sys.executable, '-m', 'pwiz', '-e', ...], stdout=file)
相关:Python subprocess.check_output(args)失败,而通过Windows命令行执行的args工作正常。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句