close
プログラミングの習慣としてはリソースの使用範囲を明確にする方が良いのではないかなぁ。
てか、with があるよ、と。
from __future__ import with_statement import sys global lineno = 0 def cat_n(filename): global lineno with file(filename, 'r') as fp: for line in fp: lineno += 1 sys.stdout.write('%6d: %s' % (lineno, line)) for filename in sys.argv[1:]: cat_n(filename)
あと、file オブジェクトのデストラクタで close されるかどうかは明確になっていないので注意する必要があるとかなんとか。