python - 有没有办法查看哪一行代码在 python 中产生警告消息?
问题描述
Python 经常抛出警告消息,尤其是在使用 pandas 时。但没有显示线参考。为什么会这样,有没有办法获得这些信息?
解决方案
对于不是熊猫特定的更通用的解决方案,您可以覆盖formatwarning方法:
警告信息的打印是通过调用 showwarning() 来完成的,它可以被覆盖;此函数的默认实现通过调用 formatwarning() 来格式化消息,这也可供自定义实现使用。
所以它看起来像下面这样:
import warnings
def my_formatwarning(message, category, filename, lineno, line=None):
print(message, category)
# lineno is the line number you are looking for
print('file:', filename, 'line number:', lineno)
...
warnings.formatwarning = my_formatwarning
对于问题的为什么部分,我不确定答案是什么,我想这样可以使日志保持清洁?
推荐阅读
- java - 每次用户在 Android 中注册时,都会在 firebase 数据库中创建一个新的用户条目
- excel - 其他工作簿中的 VBA 排序表
- ruby-on-rails - 无法为多个孩子创建资金表
- apache - 无法调试以修复 Windows 10 上的虚拟主机问题
- python - 实现ANN的python代码中的变量可见性/范围
- python - 如何使用星图将子数组传递给多处理工作者
- java - 为什么 atomikos 定期 ping pg_prepared_xacts
- r - 在行、R 数据框或 Excel 中查找重复值的出现?
- html - 避免在 html/css 中的桌面视图中水平滚动
- c++ - 为什么 std::log10(16.0) / std::log10(2.0) != std::log2(16.0)?