当我尝试
时,有人可以告诉我为什么在python 3.4.2中import codecs
f = codecs.open('/home/filename', 'w', 'utf-8')
print ('something', file = f)
它给了我一个空文件?
之前它运行良好,但只是突然停止打印到文件
答案 0 :(得分:3)
缓冲文件写入以避免影响写入磁盘的性能消耗。当达到阈值,显式刷新或关闭文件时,将刷新缓冲区。
你没有关闭文件,没有刷新缓冲区,也没有写入足够的文件来自动刷新缓冲区。
执行以下操作之一:
冲洗缓冲区:
f.flush()
这可以通过flush
的{{1}}参数来完成:
print()
但该参数需要Python 3.3或更高版本。
关闭文件:
print('something', file=f, flush=True)
或将该文件用作上下文管理器(使用f.close()
stamement):
with
退出块时(完成时或异常),文件将自动关闭。
将更多数据写入文件;多少取决于缓冲配置。