Pythonはファイルを1行ずつ読み取ります

1. ファイルを読み取る最も基本的な方法:

# File: readline-example-1.py

file =open("sample.txt")while1:

 line = file.readline()if not line:break

 pass # do something

ファイルから1行ずつデータを読み取るのは明らかに遅いですが、メモリを節約できます。

私のマシンで10Mのsample.txtファイルを1秒あたり約32000行で読み取ります

2. fileinputモジュールを使用

# File: readline-example-2.py

import fileinput

for line in fileinput.input("sample.txt"):

 pass

書き込み方法は簡単ですが、テストの結果、1秒あたり13,000行のデータしか読み取れず、効率は以前の方法の2倍以上遅くなっています...

3. キャッシュを使用したファイルの読み取り

# File: readline-example-3.py

file =open("sample.txt")while1:

 lines = file.readlines(100000)if not lines:breakfor line in lines:

  pass # do something

この方法は本当に良いですか?同じデータテストで、1秒あたり96900行のデータを読み取ることができることがわかりました。効率は最初の方法の3倍、2番目の方法の7倍です!

————————————————————————————————————————————————————————————

Python 2.2以降では、forループを直接使用して、ファイルオブジェクトのデータの各行を読み取ることができます。

# File: readline-example-5.py

file =open("sample.txt")for line in file:

 pass # do something

Python 2.1では、xreadlinesイテレーターを使用して次のことを実現することしかできません。

# File: readline-example-4.py

file =open("sample.txt")for line in file.xreadlines():

 pass # do something

Recommended Posts

Pythonはファイルを1行ずつ読み取ります
Pythonはjsonファイルを読み書きします
Pythonはファイルの名前を変更します
wavファイルのPython分析
pythonバッチ実行pyファイル
Pythonファイルを暗号化する3つの方法
Pythonは.nii形式の画像の例を読み取ります
pythonftpアップロードファイルとフォルダー
Pythonウォーターフォールラインインジケーターの作成例
pythonファイルを呼び出すphpについて話す
Pythonはどのようにxmlファイルを生成しますか
Pythonは視覚的な線図を描きます