#python #python-3.x #file-handling #readline
#python #python-3.x #обработка файлов #readline
Вопрос:
Я не понимаю, как infile.readline()
функция работает в моем коде.
ПРИМЕЧАНИЕ: Используется интерпретатор Python версии v2.7.15 (64-разрядный).
infile = open(r'C:UserspritishDesktoptest_file_for_py.txt', 'r')
print infile.read(5)
print infile.read(5)
print infile.readline(2)
Где test_file_for_py.txt
содержатся эти строки:
This is line 1
This is line 2
This is line 3
This is line 4
This is line 5
This is line 6
This is line 7
This is line 8
В приведенном выше #TEST КОДЕ 1 , print infile.readline(2)
выдает результат ne, который соответствует ожиданиям:
>>> infile = open(r'C:UserspritishDesktoptest_file_for_py.txt', 'r')
>>> print infile.read(5)
This
>>> print infile.read(5)
is li
>>> print infile.readline(2)
ne
>>>
Теперь вот в чем загвоздка, он продолжает выдавать тот же результат, что и ниже, независимо от того, какое значение (больше 4) Я передаю в качестве аргумента infile.readline()
.
>>> infile = open(r'C:UserspritishDesktoptest_file_for_py.txt', 'r')
>>> print infile.read(5)
This
>>> print infile.read(5)
is li
>>> print infile.readline(5) # NOTE BELOW output
ne 1
>>>
>>> infile = open(r'C:UserspritishDesktoptest_file_for_py.txt', 'r')
>>> print infile.read(5)
This
>>> print infile.read(5)
is li
>>> print infile.readline(8) #value is changed to 8 now , but still o/p same as previous(as like 5)
ne 1
>>>
Кто-нибудь может, пожалуйста, объяснить, почему infile.readline()
не возвращает символы из следующей строки, даже если я меняю infile.readline()
аргумент на любое значение (> 5)?
Комментарии:
1.
readline
останавливается при попадании наn
символ.readline
, как следует из названия, просто должен читать текущую строку.
Ответ №1:
readline
останавливается, когда доходит до символа новой строки. Необязательный size
аргумент указывает, сколько символов нужно прочитать максимум. Если он встречает новую строку до того, как size
символы будут прочитаны, он все равно останавливается, и size
аргумент становится неактуальным.
Смотрите документацию.