我想将python脚本子进程的stdout和stdin定向到同一个文件中。我不知道的是如何区分这两个来源的代码行?(例如,在stderr中的行前加上感叹号。)
在我的特殊情况下,不需要实时监控子进程,正在执行的Python脚本可以等待其执行结束。
发布于 2011-07-25 04:59:26
您可以在命令执行后将stdout/err写入文件。在下面的示例中,我使用了酸洗,所以我确信我将能够在没有任何特定解析的情况下读取,以区分stdout/err,并且在某个时刻,我可以dumo退出代码和命令本身。
import subprocess
import cPickle
command = 'ls -altrh'
outfile = 'log.errout'
pipe = subprocess.Popen(command, stdout = subprocess.PIPE,
stderr = subprocess.PIPE, shell = True)
stdout, stderr = pipe.communicate()
f = open(outfile, 'w')
cPickle.dump({'out': stdout, 'err': stderr},f)
f.close()https://stackoverflow.com/questions/6809590
复制相似问题