2016-02-14 2 views
1

Я стартер в Python и получаю количество строк в txt-файле. Я следовал точно, как то, что дано в онлайн-курс на Coursera, который, как показано ниже:Подсчет количества строк с использованием Python

fhand=open("Read Me.txt") 
count=0 
for line in fhand: 
    count=count+1 
print(count) 

В интернет, конечно, это действительно дает правильное количество строк, но я продолжаю получать 0. Я предполагаю, что это может иметь какое-то отношение к версии программного обеспечения (мой Python3.4.3, онлайновый курс Python2) или текстовый редактор Mac-системы? Заранее благодарим за ваши советы.

+0

Это должно сработать. Вы уверены, что выполняете правильный скрипт? Также вы уверены, что в файле есть строки? –

+3

Возможно, вы уже * прочитали файл первым и забыли открыть или вернуться к началу? Файлы, прочитанные, не начинаются с начала автоматически при следующем чтении. –

+0

Либо MartijnPieters прав, либо ничего в этом файле не существует. В качестве комментария, однако, вы можете сказать 'count = len (open (" Read Me.txt "). Readlines())' – zondo

ответ

0

Если это все код, то ваш файл должен быть пустым. Если есть код, который, возможно, вы считали нерелевантным между вызовом open(...) и циклом for line in fhand:, возможно, что вы прочитали файл и не искали его в начале. Если это так, вы можете сделать fhand.seek(0), чтобы вернуться к началу файла. Это, однако, не самый простой способ найти количество строк в файле. Вы можете использовать: count = len(open("Read Me.txt").readlines()) или count = len(line for line in open("Read Me.txt"))

+0

Спасибо! Я пробовал в обоих направлениях, и они работают. –

0

Ваш код 'as-it-is' в вашем посте должен работать. Но если выше это всего лишь фрагмент из вашего полного кода, вы можете прочитать файл один раз перед этим циклом for. Следующий пример может дать вам идею:

fhand = open("Read Me.txt") 
count=0 
for line in fhand: 
    count=count+1 
print(count) 

count=0 
for line in fhand: 
    count=count+1 
print(count) 

Просто попробуйте добавить fhand.seek(0) прежде, чем второй for цикла, и проблема будет решена.

+0

Вы правы! Я внес некоторые коррективы, и теперь это работает. Благодаря! –

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