Я читаю внешний txt-файл и отображаю все строки, у которых поле 6 равно Y. Затем мне нужно подсчитать эти строки. Однако, когда я добавляю функцию sum, она будет печатать только одну строку, если я удалю эту функцию суммы, все строки будут отображаться как ожидалось. Я предполагаю, что это что-то связано с циклом for, но не может показаться, как получить все строки для отображения и сохранить мою сумму. Может ли кто-нибудь помочь мне определить, где это происходит?Loop не отображает все строки при добавлении функции суммы
noLines = 0
fileOpen = open ("file.txt","r")
print ("Name: " + "\tDate: " + "\tAge: " + "\tColour: " + "\tPet")
for line in fileOpen:
line = line[:-1]
field = line.split(',')
if field[6] == "Y":
print()
print (field[0] +"\t\t" + field[1] + "\t" + field[2] + "\t\t" + field[3] + "\t\t" + field[4])
noLines = sum(1 for line in fileOpen)
print()
print(noLines)
Вы уверены, что там нет пробелов до или после «Y»? Я предлагаю удалить их на всякий случай: 'if field [6] .strip() ==" Y ": ...' Вы также сбросите количество строк в каждой итерации цикла. Это, вероятно, не то, что вы хотите. – DyZ
@Sarah: Вы не должны изменять вопрос, как он делает существующие ответы недействительными. Пожалуйста, не изменяйте код, так как эти вопросы также служат ссылкой для будущих пользователей (а не только для вас). Пожалуйста, прокомментируйте мой ответ на этот вопрос, и я постараюсь помочь вам решить проблему (насколько мне известно) –
Вы должны отредактировать код, чтобы сделать ваш вопрос чистым и понятным. Но изменение контекста вопроса заключается в использовании функции редактирования SO –