如何在现代 Python 中将一行写入文件?我听说这已被弃用:
print >>f, "hi there"
另外, "\n"
适用于所有平台,还是我应该在 Windows 上使用 "\r\n"
?
原文由 Yaroslav Bulatov 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在现代 Python 中将一行写入文件?我听说这已被弃用:
print >>f, "hi there"
另外, "\n"
适用于所有平台,还是我应该在 Windows 上使用 "\r\n"
?
原文由 Yaroslav Bulatov 发布,翻译遵循 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 许可协议
4 回答4.5k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
这应该很简单:
从文档:
一些有用的阅读:
with
声明open()
'a'
用于附加或使用'w'
用截断写os
(特别是os.linesep
)