gpt4 book ai didi

python - 如何将 Traceback 错误信息保存到文件中

转载 作者:行者123 更新时间:2023-12-03 08:18:03 34 4
gpt4 key购买 nike

假设我有一个非常简单的代码会引发错误:

print(1/0)
如何将完整的回溯错误保存到文件中,以便该文件包含:
Traceback (most recent call last):
File "main.py", line 1, in <module>
print(1/0)
ZeroDivisionError: division by zero

最佳答案

traceback标准库模块对于处理 python 中的回溯错误很有用,只需获取一个文件对象,然后使用它将回溯写入文件:

import traceback

with open('tb.txt', 'w+') as f:
try:
print(1/0)
except:
traceback.print_exc(file=f)
我以写入模式打开了一个文件(如果文件不存在则创建它),将对象另存为 f ,然后将引发错误的部分包裹在 try-except中堵塞。这是必要的,因为一旦发生错误,程序就会终止并打印错误信息,因此我们没有时间保存跟踪信息。
之后,在 except部分,我们使用 print_exc()将回溯保存到文件中。

traceback.print_exc(limit=None, file=None, chain=True)

This is a shorthand for print_exception(*sys.exc_info(), limit, file, chain).


请记住,不要只将文件名作为字符串传递, file参数需要有 write()写入文件的方法。放置文件的打开/关闭可确保在使用文件后关闭文件。
的结果tb.txt
Traceback (most recent call last):
File "main.py", line 5, in <module>
print(1/0)
ZeroDivisionError: division by zero

关于python - 如何将 Traceback 错误信息保存到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63464807/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com