infomisc -ITエンジニア雑記-

某ITエンジニアの雑記および備忘録です。プログラミング教育についても触れていければと思っています。

ファイル読み込み

f:id:rmatsush:20200120013705p:plain

Pythonに関するTipsを忘れないように書いておきます。 自分の場合、仕事上大量のテキストファイルを扱うことが多いので、ファイル読み込みとか、文字列操作に関するTipsが多くなりそうです。

ファイル読み込み#1

with open('/tmp/test.txt') as f:
     for line in f:
         print line

/tmp/test.txtを読み込んで、1行ずつ出力するプログラムです。 この方法は、ファイルを読み込んだ際にすべてのファイルの中身をメモリに乗せることはないらしいです。 物理メモリサイズに比べてファイルサイズが大きい場合は、この方法が有効になります。

ファイル読み込み#2

f = open('/tmp/test.txt')
for line in f.readlines():
     print line
f.close()

動作としては同じですが、一度ファイルの内容をメモリに展開します。 f.readlines()がすべての行を取得するので、その分の空きメモリが必要になります。

自分はファイル読み込み#2の方法を使っていたと思います。 処理速度といった点では、すべての内容をメモリに展開する#2の方が高速かもしれませんが、効率化といった意味では#1の方が優れてそうです。