python - 将 python 打印语句转换为日志记录

标签 python abstract-syntax-tree rope

我正在开发一个大型代码库,该代码库使用 print 语句进行日志记录而不是 python 日志记录。我想知道是否有建议将所有这些打印语句转换为对 logging.info 的调用?许多这些打印品分布在几行中,因此任何解决方案都需要处理这些情况,并希望能够保持格式。

我研究过 python rope,但它似乎没有将对 print 等语句的调用转换为函数调用的功能。

最佳答案

您可以使用 2to3 并且对 print 语句 -> print 函数应用修复。

2to3 --fix=print [yourfiles]          # just displays the diff on stdout
2to3 --fix=print [yourfiles] --write  # also saves the changes to disk

这应该会自动处理所有这些奇怪的情况,然后将打印函数转换为日志记录函数应该是一个简单的查找和替换,例如 sed

如果出于某种原因您没有 2to3 脚本的快捷方式,请将 lib2to3 作为模块运行:

python -m lib2to3 --fix=print .

关于python - 将 python 打印语句转换为日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15082213/

相关文章:

python - 如何使用 fillna() 函数在 python 中填充 NA/Null 的分类变量

python - 如何通过 Python 将 gpg 加密的 oauth 文件用于 offlineimap

c++ - 从 Spidermonkey 获取最后一段 JavaScript 代码

c++ - 使用 libclang/libtooling

javascript - 用从评论内容派生的子树替换 JavaScript AST 中的评论

python - Emacs 中的 Rope 和 Yasnippet

python - 如何通过继承在python中对请求进行子类化

Python:如何将 sklearn 函数与数据帧一起使用?

python - 绳索自动导入不起作用

python - 为什么我不能在 emacs 中对 python 模块使用自动完成