Python 将运行结果保存到log文件中遇到的问题
用python写了一段代码,想把运行结果保存到log文件中,加了一句sys.stdout=open('out.log','a'),代码中有一个模块是建立一个交互界面在运行...
用python写了一段代码,想把运行结果保存到log文件中,加了一句sys.stdout = open('out.log', 'a'),代码中有一个模块是建立一个交互界面在运行时选择
如果该句放在最开始,运行时此界面无法显示,但运行结果可保存至log;如果该句放在模块之后,界面可显示但结果无法保存至log。如何使两者能同时进行。
请问有什么好方法解决么?
windows下 展开
如果该句放在最开始,运行时此界面无法显示,但运行结果可保存至log;如果该句放在模块之后,界面可显示但结果无法保存至log。如何使两者能同时进行。
请问有什么好方法解决么?
windows下 展开
2个回答
展开全部
这个简单啊。通过管道输出到另一个程序里去,另外一个程序同时打印并输出到out.log
这是我常用的办法。
还有一个笨办法,用自己的myprint代替所有的print语句。这样你可以同时输出到屏幕与文件了。
第三个办法是通过logging。这个模块支持多个listener,可以同时输出到屏幕与文件以及网络。
这是我常用的办法。
还有一个笨办法,用自己的myprint代替所有的print语句。这样你可以同时输出到屏幕与文件了。
第三个办法是通过logging。这个模块支持多个listener,可以同时输出到屏幕与文件以及网络。
追答
假设有一个程序叫mytype.py
import os
for line in sys.stdin.readlines():
open("somelog.txt","ab").write(line)
print line.str()
再假设你的程序是test_print.py
使用管道的做法是这样python test_print.py | python mytype.py
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询