在学习Python的同时,我们进行Print to screen但最终逐渐打印到输出文件...但是大多数时候所有错误都没有在代码中解决......在这种情况下,代码在运行10 20个循环后中止或说80%的代码然后中止..但是在这段时间内打印到文件的数据会丢失,因为file.close()没有被执行。
在Python中有一种方法可以保存WIP文件。我想这样做而不关闭并在附加模式中再次重新打开文件多次。这将有助于调试,也不会丢失在发生错误之前累积的数据。
搜索后我找不到这样的东西....如果有人或者可以提出任何想法如何制作一个模块,这将是伟大的......我们需要的是一个通用的捕获......以防万一任何错误..执行catchall代码关闭文件然后退出Python。
答案 0 :(得分:2)
您可以通过调用相关文件对象上的f.flush()
来刷新内部文件缓冲区。
更好的方法是将文件访问权限包装在with block中。如果引发异常,则关闭文件。
with open('tmp.txt', 'r') as f:
do_stuff_with(f)
答案 1 :(得分:1)
关于文件对象的文档:https://docs.python.org/2/library/stdtypes.html?highlight=flush#file.flush
使用flush
功能。文档上还附有os.fsync
函数的说明,以确保数据写在光盘上。