2

テキスト ファイルを処理する Python スクリプトを作成しています。私は、さまざまなオペレーティング システムで作業しているさまざまな人々から生成されたファイルを処理することを期待しています。どのOSがテキストファイルを作成したかを把握し、行末規則を指定して行ごとの解析を簡単にする良い方法はありますか?

4

4 に答える 4

3

ファイルを開くときは、ユニバーサル改行モードを使用してください。

with open('input.txt', 'rU') as fp:
  for line in fp:
    print line
于 2010-12-04T02:55:20.083 に答える
2

splitlines()さまざまな行末記号を処理します。

>>> 'foo\nbar'.splitlines()
['foo', 'bar']
>>> 'foo\rbar'.splitlines()
['foo', 'bar']
>>> 'foo\r\nbar'.splitlines()
['foo', 'bar']
于 2010-12-04T01:52:37.813 に答える
1

を使用するfile.readlines()と、ファイル内の行を含むリストが返されます。

lines = open('info.txt').readlines()
for line in lines:
    print line

Pythonファイルオブジェクトに関するドキュメントを参照してください。

于 2010-12-04T02:15:25.827 に答える
1

空白の終わりを気にしない場合は、次のようにします。

for line in [l.rstrip() for l in open('test.py').read().split('\n')]:
    print line

'\n' は Linux / Mac を処理し、rstrip は Windows からの '\r' を使い果たします。

于 2010-12-04T02:03:05.750 に答える