file.readlines([sizehint])
file
- объект файлаsizehint
- int
, количество байтовМетод файла file.readlines()
читает файловый объект file
построчно, пока не достигнет конца файла EOF
и возвращает список, содержащий строки или байтовые объекты файла в зависимости от режима, в котором открыт файл функцией open()
. Конечный символ новой строки \n
сохраняется в строке.
Если присутствует необязательный аргумент sizehint
, то читаются целые строки, составляющие приблизительно sizehint
байт (округляется до внутреннего размера буфера).
Пустая строка возвращается только по достижении конца файла, т. е. EOF
встречается немедленно.
Помните, что файл может быть слишком большим для того чтобы разместиться полностью в оперативной памяти. В этом случае лучше считывать и обрабатывать файл кусками.
>>> text = 'This is 1st line\nThis is 2nd line\nThis is 3rd line\n' >>> fp = open('foo.txt', 'w+') >>> fp.write(text) # 51 >>> fp.seek(0) # 0 >>> fp.readlines() # ['This is 1st line\n', 'This is 2nd line\n', 'This is 3rd line\n'] >>> fp.seek(0) # 0 >>> fp.readlines(15) # ['This is 1st line\n'] >>> fp.readlines(20) # ['This is 2nd line\n', 'This is 3rd line\n'] >>> fp.readlines(20) # [] >>> fp.close()
Внимание! Функцию open()
предпочтительнее использовать с оператором контекстного менеджера with
. При использовании оператора with
файл закрывать не нужно:
text = 'This is 1st line\nThis is 2nd line\nThis is 3rd line\n' # пишем with open('foo.txt', 'w') as fp: fp.write(text) #51 # читаем построчно с помощью `fp.readlines()` with open('foo.txt', 'r') as fp: data = fp.readlines() print(data) # ['This is 1st line\n', 'This is 2nd line\n', 'This is 3rd line\n'] # читаем построчно с помощью `for` with open('foo.txt', 'r') as fp: for line in fp: print(line.rstrip('\n')) # This is 1st line # This is 2nd line # This is 3rd line