Мой вопрос связан с вводом файла -в Python с использованием open()
. У меня есть текстовый файл mytext.txt
с 3 строками. Я пытаюсь сделать с этим файлом две вещи :: распечатать строки и распечатать количество строк.
Я попробовал следующий код:
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
for line in input_file:
count_lines += 1
print 'number of lines:', count_lines
Результат :он печатает 3 строки правильно, но печатает «количество строк :0» (вместо 3)
Я нашел два способа решить эту проблему и заставить ее распечатать3
:
1 )Я использую одну петлю вместо двух
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
count_lines += 1
print 'number of lines:', count_lines
2 )после первого цикла я снова определяю входной файл _
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
input_file = open('mytext.txt', 'r')
for line in input_file:
count_lines += 1
print 'number of lines:', count_lines
Мне кажется, что определение input_file =...
действительно только для одного цикла, как будто оно было удалено после того, как я использовал его для цикла. Но я не понимаю, почему, наверное, мне еще не ясно на 100%, как variable = open(filename)
обрабатывается в Python.
Кстати, я вижу, что в этом случае лучше использовать только одну петлю. Тем не менее, я чувствую, что должен прояснить этот вопрос, поскольку могут быть случаи, когда я могу/должен его использовать.