Как мне прочитать строку файла -по строке -в Python?

В до -исторические времена (Python 1.4 )мы делали:

fp = open('filename.txt')
while 1:
    line = fp.readline()
    if not line:
        break
    print line

после Python 2.1 мы сделали:

for line in open('filename.txt').xreadlines():
    print line

до того, как мы получили удобный протокол итераторов в Python 2.3 и могли делать:

for line in open('filename.txt'):
    print line

Я видел несколько примеров использования более подробного:

with open('filename.txt') as fp:
    for line in fp:
        print line

это предпочтительный метод в будущем?

[править] Я понимаю, что оператор with обеспечивает закрытие файла... но почему это не включено в протокол итератора для файловых объектов?

132
задан thebjorn 19 July 2012 в 07:06
поделиться