gpt4 book ai didi

python - 有没有办法在 python 的 .txt 文件中写入每个警告?

转载 作者:行者123 更新时间:2023-12-02 02:45:04 25 4
gpt4 key购买 nike

我希望我的程序将每个警告都写入 .txt 文件中。有什么办法可以不使用 catch_warnings 来做到这一点吗?

最佳答案

一种选择是使用内置的 Python 日志记录。互联网上有很多关于如何使用 Python 日志系统的信息,尤其是在它的 Python 文档中(例如,参见 Logging HOWTO)。但是打开文件日志记录的最简单方法是使用 basicConfig()函数,像这样:

import logging
logging.basicConfig(filename="myfile.txt",level=logging.DEBUG)

现在您可以使用 captureWarnings() 启用警告记录功能:

logging.captureWarnings(True)

作为奖励,您现在还可以记录自己的消息:

logging.info("My own message")

另一种方法是自己替换警告处理程序。这是稍微多一点的工作,但它更专注于警告。 showwarning()warning 模块文档说:

You may replace this function with any callable by assigning to warnings.showwarning.

因此您可以使用相同的参数列表定义您自己的函数,并将其分配给该变量:

warning_file = open("warnings.txt", "w")

def mywarning(message, category, filename, lineno, file=None, line=None):
warning_file.write(warnings.formatwarning(message, category, filename, lineno, file, line))

warnings.showwarning = mywarning

请注意,我在函数外部打开了 warning_file,因此它会在您的 Python 脚本启动时打开一次。我还使用了 formatwarning()函数,以便输出与 warnings 模块通常输出的格式相同。

关于python - 有没有办法在 python 的 .txt 文件中写入每个警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62931898/

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