У меня есть файл с именем file
с этим текстом:Readline() в цикле не работает в Python
Hello
I am not a bot
I am a human
Do you believe me?
I know you won't
Yes I am a bot
Yes you thought it right
Этот код выводит все строки текста:
with open(file) as f:
for i in f:
print(i,end="")
Но этого кода нет, и я не понимаю, почему.
with open(file) as f:
for i in f:
print(f.readline(),end="")
Это печатает:
I am not a bot
Do you believe me?
Yes I am a bot
То, что я понимаю, как цикл проходит по строкам в файле, он будет читать эту строку и вернуть, что в виде строки, которая затем распечатать. Если я заменил цикл for for i in range(9)
, он работает.
Почему вы смешивания итерация * над файлом * и вызовы readline? Итерация * уже считывает строки *. –
Да, но зачем ставить readline() там не работает? –
Это действительно работает. Вы можете видеть, что он читает три строки в вашем файле, как вы это просили. (тот факт, что он не читает строки, уже потребляемые 'i', не является ошибкой' readline') – Kevin