18

Python では、次を使用してファイルを読み取り、その行をリストにロードできます。

f = open('file.txt','r')
lines = f.readlines()

個々の行は で区切られて\nいますが、行の内容が で区切られている場合、改行\rとして扱われません。\rallを変換し\nて正しい list を取得する必要がありますlines

.split('\r')内で行うlinesと、リスト内のリストが取得されます。

\rファイルを開いてすべてをに置き換え、\nファイルを閉じて再度読み込んでから使用することを考えましたreadlines()が、これは無駄に思えます。

これをどのように実装すればよいですか?

4

2 に答える 2

43
f = open('file.txt','rU')

これにより、Pythonのユニバーサル改行サポートでファイルが開き、\r行末として扱われます。

于 2009-11-23T19:04:42.560 に答える
4

問題がある場合は、バイナリ形式で開き、次のコードで変換します。

from __future__ import with_statement

with open(filename, "rb") as f:
    s = f.read().replace('\r\n', '\n').replace('\r', '\n')
    lines = s.split('\n')
于 2009-11-23T19:18:01.987 に答える