【发布时间】:2017-10-24 06:55:23
【问题描述】:
我有一个从 Linux 终端成功运行的 python 脚本。当我运行 python 脚本时,我可以使用 shell script 将终端输出收集到文件中。
现在我想从python script 本身收集终端输出。但无法这样做。
我想使用
python来执行此操作,但不使用任何shell或unix脚本
我在python file 中做了如下操作:
class Tee(object):
def __init__(self, f1, f2):
self.f1, self.f2 = f1, f2
def write(self, msg):
self.f1.write(msg)
self.f2.write(msg)
outfile = open('outfile', 'w')
sys.stdout = outfile
sys.stderr = Tee(sys.stderr, outfile)
python file 中的这部分代码将stderr 和stdout 打印到一个输出文件。
如何将整个终端输出捕获到单个文件中。
【问题讨论】:
-
“捕获整个终端输出”是什么意思?上面的代码确实已经将所有内容写入
outfile。虽然使用contextlib.redirect_(stdout|stderr)会更容易。 -
@YSelf 我的代码仅将
print语句打印到文件中,我希望将所有显示在terminal上的日志记录也包括在内
标签: python linux stdout stderr