对于我当前的项目,我需要找到一种方法将依赖于标准输出的版本或至少将格式化的标准输出写入日志文件。目前我只是使用subprocess.Popen(exec, stdout=log),它将它写入一个未格式化的文件。
我得到的最好的想法是即时格式化输出,通过拦截标准输出,将其重新路由到自定义模块,并通过使用 if 和 elif 的组合将自己的字符串写入日志。但是我在文档中找不到任何关于如何在 Python 3 中执行此操作的方法。我能找到的最合适的答案是在这个问题中,接受的答案已经很接近了。
但我只是不明白我应该如何构建应该用作stdout=class的类。这些方法中的哪一种接收输入(以及它是如何格式化的)?这些方法中哪些是必要的?或者甚至可能有一种更简单的方法来完成我想做的事情?