写出python的错误和错误的更好方法是什么

写出python的错误和错误的更好方法是什么,python,linux,stdout,stderr,Python,Linux,Stdout,Stderr,我正在用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') prin

我正在用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
所以我想问:

  • 为什么两个日志不同?以及如何使第二个输出与第一个输出相同
  • 将错误写入文件的更好方法是什么?或者有更好的方法

  • 谢谢你帮我解答问题。

    让脚本保持简单、原创的方式:

    # example.py
    print('console output')
    print(1/0)
    
    在shell中使用简单技巧:

    $ python example.py &> log.txt
    

    如果希望对未处理的异常执行其他自定义行为,请设置。

    以将stdout和stderr合并到一个文件中,这在使用more(或less)命令时也很有用

    使每个文件都进入单独的文件

    python example.py 2> error > output
    
    忽略stederr

    python example 2>/dev/null
    

    希望这有帮助。

    对于您的第一个问题,听起来您是在问如何输出回溯,而不仅仅是错误消息-有帮助吗?
    python example.py 2> error > output
    
    python example 2>/dev/null