Чтение> 2000 строк текстового файла, но он останавливается на строке 46, которая является пустой.Зачем? - PullRequest
0 голосов
/ 20 октября 2018

Эта проблема возникает только тогда, когда я включаю строку печати, которую я закомментировал ниже.

fname = input("Enter file name: ")
if len(fname) < 1:
    fname = "mbox-short.txt"
fh = open(fname)
i = 0
count = 0
with open(fname, 'r') as fh:
    for line in fh:
        temp = line.split()
        #print(temp[0])
        count+=1 
        print(count)

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Когда вы пытаетесь разделить пустую строку, возвращается пустой список:

>>> ''.split()
[]

По этой причине при попытке доступа к temp[0] выдается исключение IndexError, и ваша обработка останавливается.Вы можете исправить это так:

if not line: # line is blank
  continue
0 голосов
/ 20 октября 2018

Когда строка пуста, temp также пуст.Нет temp[0] для печати, и Python завершается с неперехваченным IndexError.

...