Subscribed unsubscribe Subscribe Subscribe

oinume journal

No programming, no life

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

Python

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

 

f = open('/tmp/test.txt')

for line in f:

print line

f.close()

 

 

※追記

Python2.5以降ならwithを使うともっとモダンというのをコメントやらブクマコメントで教えてもらった。

 

from __future__ import with_statement

 

with open('/tmp/test.txt') as f:

for line in f:

print line

 

 

 

下記は古いやり方。(ってPythonクックブックに書いてあった)

 

f = open('/tmp/test.txt')

while True:

line = f.readline()

if not line:

break

print line

f.close()

 

 

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

 

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に詳しく書いてある。

 

[tmkm-amazon]4873112761[/tmkm-amazon]

Remove all ads