Запутанный способ readline () работает - PullRequest
0 голосов
/ 28 марта 2019

Я не совсем понимаю, как в моем коде работает функция infile.readline().

ПРИМЕЧАНИЕ. Используется интерпретатор Python v2.7.15 (64-разрядный).

infile = open(r'C:\Users\pritish\Desktop\test_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 CODE 1, print infile.readline(2), выдается ne , что соответствует ожидаемому:

>>> infile = open(r'C:\Users\pritish\Desktop\test_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:\Users\pritish\Desktop\test_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:\Users\pritish\Desktop\test_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 Ответ

3 голосов
/ 28 марта 2019

readline останавливается, когда достигает символа новой строки.Необязательный аргумент size указывает, сколько символов читать максимум.Если он встречает символ новой строки до чтения size символов, он все равно останавливается, и аргумент size становится неактуальным.

См. документацию .

...