将行写入文件的正确方法?

新手上路,请多包涵

如何在现代 Python 中将一行写入文件?我听说这已被弃用:

 print >>f, "hi there"

另外, "\n" 适用于所有平台,还是我应该在 Windows 上使用 "\r\n"

原文由 Yaroslav Bulatov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 494
2 个回答

这应该很简单:

 with open('somefile.txt', 'a') as the_file:
    the_file.write('Hello\n')

从文档:

写入以文本模式打开的文件时,不要使用 os.linesep 作为行终止符(默认);在所有平台上使用单个 '\n'

一些有用的阅读:

原文由 johnsyweb 发布,翻译遵循 CC BY-SA 4.0 许可协议

您应该使用 print() 函数,该函数自 Python 2.6+ 起可用

from __future__ import print_function  # Only needed for Python 2
print("hi there", file=f)

对于 Python 3,您不需要 import ,因为 print() 函数是默认函数。

Python 3 中的替代方法是使用:

 with open('myfile', 'w') as f:
    f.write('hi there\n')  # python will convert \n to os.linesep

引用关于换行符的 Python 文档

将输出写入流时,如果 换行符None ,则写入的任何 '\n' 字符都将转换为系统默认行分隔符 os.linesep 如果 换行符'''\n' ,则不会进行任何翻译。如果 换行符 是任何其他合法值,则写入的任何 '\n' 字符都将转换为给定的字符串。

另请参阅: 读写文件 - Python 教程

原文由 sorin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题