oinume journal

Scratchpad of what I learned

Pythonでファイルを読み込むスマートなやり方

結論から言うと下記が最もスマートでモダンな書き方っぽい。

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

下記はファイルの中味が全部メモリに乗っちゃうから危険。

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

まとめ(イテレータ)

for line in f:
    print line

という書き方ができるのはfileが__iter__()とnext()を実装しているおかげ。詳しくはPEP-234に詳しく書いてある。 

みんなのPython 第3版

みんなのPython 第3版