ベストアンサー
バカだから。この「機能」の便利なアプリケーションを思いつかず、一生懸命努力しました。
(Romainの回答を参照してください。 「なぜ正確に」という真剣なアプローチ、私はただ炎上する必要があります:-)いくつかの回避策を提供できますが、)
もう1つのパラメータ(つまり、デフォルトの「終了」)を受け入れないのはなぜですか「\ n」、またはブールフラグ、keepnl = True)に変更すると、行末が必要な場合にのみ、行末を保持/変更することを選択できます。
これは直感的でない「ポリシー決定」により、実際には使用できなくなり、理解が遅くて難しいのではなく、次のようになります。
lines = [ ln[:-1] for ln in f.readlines() ]
通常は
/ p>
lines = f.read().split("\n")
私の目にははるかに簡単です。今すぐ変更するには遅すぎると思います。
はい、OSによっては、他の行末になる可能性があります。
Pythonの標準ライブラリにも欠陥があると思います。
回答
これらの文字は ではありません エクストラ。それらはテキストファイルに存在します。行の終わりを示します。
sample.txt
と呼ばれるテキストファイルを読み取る別の方法があります。
>>> with open("sample.txt") as sample:
... contents = sample.readlines()
... print(contents)
...
["This is line number 1\n", "This is line number 2\n", "This is line number 3\n", "This is line number 4\n", "This is line number 5\n", "This is line number 6\n", "This is line number 7\n", "This is line number 8\n", "This is line number 9\n", "This is line number 10\n", "This is line number 11\n", "This is line number 12\n", "This is line number 13\n", "This is line number 14\n", "This is line number 15\n", "This is line number 16\n", "This is line number 17\n", "This is line number 18\n", "This is line number 19\n", "This is line number 20\n"]
- 印刷された各行出力は
\n
で終わります。これは、テキストファイルの行にあるためです。 -
with
このコンストラクトは使用後にファイルを閉じるように調整されているため、ファイルを開くとき。 - ファイルを
file
と呼んでいることに気付きました。 Python言語の一部である名前の使用は避けてください。
新しい行を削除するコードが必要な場合は、次の1つのオプションがあります。
>>> with open("sample.txt") as sample:
... for line in sample:
... print(line.rstrip())
...
This is line number 1
This is line number 2
This is line number 3
This is line number 4
This is line number 5
This is line number 6
This is line number 7
This is line number 8
This is line number 9
This is line number 10
This is line number 11
This is line number 12
This is line number 13
This is line number 14
This is line number 15
This is line number 16
This is line number 17
This is line number 18
This is line number 19
This is line number 20
注t文字列の右端のみから空白文字を削除するrstrip
を使用しました。