Python 3.2-readline () пропускает строки в исходном файле
У меня есть .txt файл, который я создал с несколькими линиями.
когда я запускаю цикл for с аккумулятором count, он пропускает строки.
он пропускает верхнюю строку и начинается со второй, печатает четвертую, шестую и т. д...
чего мне не хватает?
** for your reading pleasure**
def main():
# Open file line_numbers.txt
data_file = open('line_numbers.txt', 'r')
# initialize accumulatior
count = 1
# Read all lines in data_file
for line in data_file:
# Get the data from the file
line = data_file.readline()
# Display data retrieved
print(count, ": ", line)
# add to count sequence
count += 1
3 ответов
Попробуйте удалить " line=data_file.readline () " все вместе? Я подозреваю, что" для строки в data_file: "также является операцией readline.
you for loop выполняет итерацию по файлу data_file, и ваша readline() конкурирует с ним. Стереть line = data_file.readline()
строка вашего кода для такой результат:
# Read all lines in data_file
count = 1
for line in data_file:
# Display data retrieved
print(count, ": ", line)
# add to count sequence
count += 1
for line in data_file
уже получает текст каждой строки для вас - последующий вызов readline затем получает после линии. Другими словами, удаление вызова readline сделает то, что вы хотите. В то же время вам не нужно самостоятельно отслеживать переменную аккумулятора - python имеет встроенный способ сделать это с помощью enumerate
- другими словами:
data_file = open('line_numbers.txt', 'r')
for count, line in enumerate(data_file):
...