2016-07-20 7 views
-2

Я начинаю изучать Python самостоятельно Python 2.7. Могу ли я задать один вопрос, который я получил в подсчете строк в Python? Как я интуитивно понимаю, почему работает нижеследующее, особенно, как я могу понять, что цикл for делает с дескриптором файла?Счет строки в Python

Большое спасибо всем

fhand=open('test.txt') 
count=0 
for line in fhand: 
    count=count+1 

print count 
+0

Попробуйте напечатать каждую строку в вашем файле: для строки в fhand: print line – Eska

+0

Проводили ли вы какие-либо исследования того, как итерация над файловым объектом работает на Python? – TigerhawkT3

+0

И ваш вопрос об итерации над файловыми объектами или все в этом блоке, включая назначение переменных и приращение? – TigerhawkT3

ответ

2

open() возвращает file объект.

count=0 инициализирует переменную count со значением 0.

Как вы можете видеть в документации объекта file, с использованием цикла for вы получите содержимое файла по очереди. (Это происходит потому, что file objects are iterable.)

Каждый раз, когда вы получаете содержимое строки, count=count+1 добавляет 1 переменной count.

print count сбрасывает содержимое переменной count.

+0

это больше похоже на логику и kwnolage, чем на интуицию. – Arnial

0

A file object - это итератор, который при использовании возвращает каждую строку файла. Таким образом, количество импульсов в течение петли будет просто подсчитать количество строк в файле

0
fhand=open('test.txt') # Opens the file and puts the content of it in the "fhand" variable 
count=0 # Creates new variable "count" and sets it to 0 
for line in fhand: 
    count=count+1 # Increase count by 1 for every line in the file 

print count # Prints the amount of lines 
0

В Python, когда вы открываете файл, вы получаете доступ к его содержимому.

fhand=open('test.txt') 

Вышеприведенная работа.

count=0 

При инициализации рассчитывать на 0, это означает, что переменная устанавливается в значение 0, и как только он входит в цикл,

count=count+1 

добавляет +1 к нему каждый раз.

for line in fhand 

Выше кода для итерации. Он перебирает каждую строку файла fhand и для каждой итерации добавляет +1 для подсчета.

Когда итерация завершена, устанавливается значение count, которое вы печатаете позже, чтобы получить количество строк.

Смежные вопросы