打印到 python 中的空文件 3

Print to an empty file in python 3

有人能告诉我为什么在 python 3.4.2 中尝试

import codecs
f = codecs.open('/home/filename', 'w', 'utf-8') 
print ('something', file = f) 

它给我一个空文件?

以前它运行良好,但突然停止打印到文件

缓冲文件写入以避免写入磁盘的性能下降。当您达到阈值、显式刷新或关闭文件时刷新缓冲区。

您还没有关闭文件,没有刷新缓冲区,也没有写入足够的文件来自动刷新缓冲区。

执行以下操作之一:

  • 刷新缓冲区:

    f.flush()
    

    这也可以通过 print()flush 参数来完成:

    print('something', file=f, flush=True)
    

    但参数需要 Python 3.3 或更新版本。

  • 关闭文件:

    f.close()
    

    或将文件用作上下文管理器(使用 with 语句):

    with open('/home/filename', 'w', encoding='utf-8') as f:
         print('something', file=f)
    

    并且文件将在块退出时自动关闭(完成或异常)。

  • 向文件写入更多数据;多少取决于缓冲配置。