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ます。文字列が (または EOF) で終わっていない場合、\nそれが行であるとどのように判断できますか?

"hello world"
"hello world\n"

最初の行は行ではありません。2 回印刷すると、

hello worldhello world

2番目のバージョンは私たちに与えるでしょう

hello world
hello world
于 2016-01-22T14:10:55.793 に答える