Python 如何记录所有打印语句
我的程序相当大,我希望它的所有打印语句都被记录下来,因此我实现了Python 如何记录所有打印语句,python,stdout,Python,Stdout,我的程序相当大,我希望它的所有打印语句都被记录下来,因此我实现了 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()
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文件中,而不影响它的功能?不应该使用打印语句进行日志记录,也不应该在生产代码中重定向标准输出(或任何其他标准流)。相反,您应该使用该模块来编写消息,并设置您需要将日志消息记录到正确位置的任何处理程序(可能是或在您的情况下)
如果您已经有太多的现有代码打印日志消息需要一次重构,我建议实现
日志记录
,将其用于以后的所有日志记录,设置一个类似文件的对象,将标准输出分流到日志记录
,以捕获现有日志消息,然后随着时间的推移重构所有基于打印的日志。您是否尝试过使用sys.stdout.flush()刷新日志?您真的不应该这样做。设置日志记录并将其配置为如果您想查看它,则登录到标准输出,如果您想登录到文件,则将其配置为文件。您能提供一个示例吗,因为我从未使用过日志记录模块