Почему readline читает строку через одну?

with open(r'C:\Users\Users\Downloads\dataset_3380_5.txt', 'r') as url:
  for file in url:
    file = url.readline().strip().split()
    print(file)

Выводит:

8 Andrews 166

10 Bishop 175

3 Paterson 136

10 Higgins 167

4 Brown 145

Должен вывести:

6 Andrews 155
8 Andrews 166
5 Porter 147
10 Bishop 175
2 Larkins 129
3 Paterson 136
6 Parkinson 159
10 Higgins 167
8 Farmer 165
4 Brown 145
11 Carey 174

Ответы (3 шт):

Автор решения: Sergei Malanin

Попробуйте так.

with open(r'C:\Users\Users\Downloads\dataset_3380_5.txt', 'r') as file:
    for row in file.readlines():
        output = row.strip().split()
        print(output)

P.S. В след раз используйте вставку кода, что бы ваш вопрос проще было читать. введите сюда описание изображения

→ Ссылка
Автор решения: MaxU

Объект типа file в Python сам по себе является итерируемым объектом. Поэтому в следующей строке кода вы уже итерируетесь по строкам файла:

for file in url:

и когда вы дополнительно делаете url.readline() вы уже читаете следующую строку файла - 2ю, 4ю, 6ю, и т.д.

Поэтому правильно будет переписать ваш код так:

with open(r'C:\Users\Users\Downloads\dataset_3380_5.txt', 'r') as url:
  for line in url:
    cols = line.strip().split()
    print(cols)
→ Ссылка
Автор решения: Master's Time

Самый легкий способ это изменить функции print.

print(text,end = "")

end пишется если надо изменить конец строки. Если не написать эту функцию то после print будет написан после текста перевод на новую строку

→ Ссылка