0

(注意:我不是想改变任何东西——只是想理解)

查看在 python 中读取文件的解决方案,每次都应该删除换行符:

In [5]: [line for line in open("text.txt", "r")]
Out[5]: ['line1\n', 'line2']

虽然直观的行为(根据一些关于此的问题的受欢迎程度来判断 只是产生剥离的线条?

这背后的原因是什么?

- 编辑 -

诚然:“直觉”是主观的。然而,“一致”就不是那么回事了。显然,其中的“线”概念与"line1\nline2".splitlines()由以下处理的概念不同iter(open("text.txt"))

>>> assert(open("text.txt").readlines() == \
... open("text.txt").read().splitlines())
AssertionError

很确定人们确实被这个抓住了。

所以我错了:也许我的直觉正好符合splitlines解释:拆分的东西不应该包括分隔符。也许我的问题的答案不是技术性的,而更像是“因为 PEP-xyz 被不同的人批准而不是 PEP-qrs”。也许我应该将它发布到一些 python 语言论坛。

4

1 回答 1

1

嗯,这是一条线。行以字符 结尾来定义\n。如果一个字符序列不以\n(或 EOF)结尾,我们怎么知道它是一行?

"hello world"
"hello world\n"

第一个不是一行,如果我们打印两次,我们可能会得到

hello worldhello world

第二个版本会给我们

hello world
hello world
于 2016-01-22T14:10:55.793 回答