正确的方式写入文件?
我习惯于print >>f, "hi there"
但是,似乎print >>
已被弃用。 建议的方式是做什么?
更新:关于所有那些带有"n"
答案......这是通用还是Unix特有的? IE,我应该在Windows上做"rn"
吗?
这应该如下简单:
with open('somefile.txt', 'a') as the_file:
the_file.write('Hellon')
从文档:
在编写以文本模式打开的文件时(默认),不要使用os.linesep
作为行终止符; 在所有平台上使用单个' n'。
一些有用的阅读:
with
声明 open()
os
(特别是os.linesep
) 你应该使用Python 2.6+以后的print()
函数
from __future__ import print_function # Only needed for Python 2
print("hi there", file=f)
对于Python 3,您不需要import
,因为print()
函数是默认值。
另一种方法是使用:
f = open('myfile', 'w')
f.write('hi theren') # python will convert n to os.linesep
f.close() # you can omit in most cases as the destructor will call it
引用有关换行符的Python文档:
在输出中,如果换行符是None,则写入的任何'n'
字符都将转换为系统默认行分隔符os.linesep
。 如果换行符是''
,则不会发生翻译。 如果换行符是任何其他合法值,则写入的任何'n'
字符都将转换为给定的字符串。
python文档推荐这种方式:
with open('file_to_write', 'w') as f:
f.write('file contents')
所以这就是我这样做的方式:)
来自docs.python.org的声明:
处理文件对象时,最好使用'with'关键字。 这有一个好处,就是文件在套件结束后可以正常关闭,即使在路上出现异常。 它也比编写等价的try-finally块短得多。
链接地址: http://www.djcxy.com/p/5365.html