为什么Python没有writeln()方法?
如果我们想要在文件中写入一个新行,就需要写这样的代码:
file_output.write('Fooo line \n')
有没有什么原因导致Python没有一个叫做 writeln()
的方法呢?
5 个回答
5
我觉得应该可以。你可以用的最接近的东西是:
file_output.writelines([foo_msg, '\n'])
25
在Python 2中,使用:
print >>file_output, 'Fooo line '
在Python 3中,使用:
print('Fooo line ', file=file_output)
14
这里提到的是关于文件操作的一些方法,为什么没有提供一个对称的接口。简单来说,就是因为有些方法不需要像其他方法那样存在。
read()
和write()
是一对儿:它们都是处理原始数据的。readlines()
和writelines()
也是一对儿:它们都是处理行数据,包括行尾符号。readline()
用得不多;用迭代器也能完成同样的工作(除了可以选择的size
参数)。
如果有一个 writeline()
(或者 writeln()
),其实和 write()
是差不多的,因为它不会添加行尾符号,这样就和 writelines()
的行为一致了。
要想在文件中模拟 print
的效果,最好的方法是使用 Python 2.x 的特殊打印到文件的语法,或者使用 print()
函数的 file
关键字参数,就像 Daniel 提到的那样。
个人来说,我更喜欢 print >>file, ...
这种写法,而不是 file.write('...\n')
。