2016-05-19 1 views
0

В соответствии с типом файл является функцией, а file.readlines() - это список строк. Но почему эти два порождают одни и те же результаты в следующем коде:В чем разница между «for x in file/file.readlines()»

file = open("test.txt") 
for x in file: 
    print x 

и

file = open("test.txt") 
for x in file.readlines(): 
    print x 

ответ

3

readlines() читает весь файл в list(), над которым вы затем итерации с помощью for. Но вы также можете просто перебрать объект file, который заставит его читать по одной строке за раз с каждой итерацией цикла. Это намного эффективнее, так как он не будет хранить содержимое всего файла в памяти сразу.

+0

Как насчет итерации по файлу vs file.xreadlines()? – Pythoner

+1

См. Http://stackoverflow.com/q/8555722/476. – deceze