为什么Python没有writeln()方法?

25 投票
5 回答
33404 浏览
提问于 2025-04-15 21:13

如果我们想要在文件中写入一个新行,就需要写这样的代码:

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')

撰写回答