我正在Linux中编写python。我想将python输出和错误写入不同的文件,而不是在控制台上输出它们。
说我是否有这个python文件example.py
:
print('console output')
print(1/0)
我尝试了不同的方式。
1.通过执行以下命令
python example.py >output 2>log
2.更新example.py
logf = open("./log", "w")
try:
print('console output')
print(1/0)
except Exception as e:
logf.write(str(e))
并执行python example.py >output
日志不同。 第一种方法:
Traceback (most recent call last):
File "try.py", line 2, in <module>
print(1/0)
ZeroDivisionError: division by zero
第二种方法:
division by zero
所以我想问:
感谢您的提问。
答案 0 :(得分:2)
以简单,原始的方式保留脚本:
# example.py
print('console output')
print(1/0)
在shell中使用简单技巧:
$ python example.py &> log.txt
如果您要针对未处理的异常采取其他自定义行为,请设置sys.excepthook
。
答案 1 :(得分:0)
要将stdout和stderr都合并到一个文件中,这在使用更多(或更少)命令时也很有帮助
python example.py 2>&1 > output
python example.py 2>&1 | more
将每个文件放入单独的文件
python example.py 2> error > output
忽略stederr
python example 2>/dev/null
希望这会有所帮助。