我的程序很大,我希望所有的打印语句都被记录下来,因此我实现了
F = open('testy.txt','w')
sys.stdout = F
if app.button_press() == True and app.return_data():
data = app.return_data()
main(data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7],data[8])
F.close()这就是我以前用几个打印语句处理的小程序,但是这个程序有几百个,我想,当我运行我的程序时,它会冻结,我认为它有很多打印语句,内存溢出,所以我如何在不影响它的功能的情况下将所有的打印语句记录到一个.txt文件中?
发布于 2013-08-27 17:38:13
您不应该使用print语句进行日志记录,也不应该在生产代码中重定向标准输出(或任何其他标准流)。相反,您应该使用logging模块编写消息,并设置需要将日志消息记录到正确位置的处理程序,可能是文件处理程序或旋转文件处理程序。
如果您已经有太多的现有代码打印日志消息而不能一次重构,那么我建议您实现logging,将其用于未来的所有日志记录,设置一个类似文件的对象,将标准输出到logging以捕获现有的日志消息,然后随着时间的推移重构所有基于打印的日志记录。
https://stackoverflow.com/questions/18471995
复制相似问题