我尝试在内存中收集stderr,而不是直接将其写入文件或stdout。我这样做是为了以某种方式生成错误日志文件。我发现了一个名为StringIO的库,它是内存中的“文件”。我不认为它能起作用。我的代码是:
buffer = StringIO.StringIO()
status = subprocess.call(args, stdout=log_fps["trace"], stderr=buffer)
if status and self.V_LEVEL:
sys.stderr.write(buffer.getvalue())
print "generated error"
if status:
log_fps["fail"].write("==> Error with files %s and %s\n" % (domain_file, problem_file))
log_fps["fail"].write(buffer.getvalue())
我得到以下错误:
^{pr2}$我想这意味着我不能使用StringIO在内存中收集stderr。除了在/tmp中写入文件之外,我还能做什么呢?在
有关更多选项,请参阅^{} 文档。在
如果您不想捕获
^{pr2}$stdout
,请使用Popen.communicate
:相关问题 更多 >
编程相关推荐