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

2022-09-05 00:59:33

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

print >>f, "hi there"

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


答案 1

这应该像这样简单:

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

从文档中:

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

一些有用的阅读:


答案 2

您应该使用自Python 2.6 +以来可用的函数print()

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

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

另一种方法是使用:

f = open('myfile', 'w')
f.write('hi there\n')  # python will convert \n to os.linesep
f.close()  # you can omit in most cases as the destructor will call it

引用Python文档中关于换行符的内容:

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