結論から言うと下記が最もスマートでモダンな書き方っぽい。
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に詳しく書いてある。