将文件用作标准输入和标准输出进行子流程
问题描述:
如何使用python子流程模块复制以下批处理命令?将文件用作标准输入和标准输出进行子流程
myprogram <myinput.in> myoutput.out
换句话说,我怎么使用myinput.in
内容作为标准输入和myoutput.out
作为标准输出运行myprogram
?
答
下面应该工作:
myinput = open('myinput.in')
myoutput = open('myoutput.out', 'w')
p = subprocess.Popen('myprogram.exe', stdin=myinput, stdout=myoutput)
p.wait()
myoutput.flush()
答
打开一个文件的子进程。这是一个阻塞呼叫。所以控制不会进入下一行,直到文件打开。
ss=subprocess.Popen(FileName,shell=True)
ss.communicate()
这看起来接近我所需要的。如何检测错误是否发生? – 2013-10-15 16:36:26
没关系。 stderr = subprocess.PIPE,那么,如果stderr:print error – 2013-10-15 16:41:52
在'myoutput = open('myoutput.out'。'w')这行''参数应该用','分隔,而不是''' – flagg19 2015-01-27 11:05:21