读取> 2000行文本文件,但它在空的第46行处停止。为什么?

时间:2018-10-19 22:57:22

标签: python parsing newline

仅当我包括下面注释掉的打印行时,才会出现此问题。

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 :(得分:2)

当您尝试分割一个空字符串时,它将返回一个空列表:

>>> ''.split()
[]

由于这个原因,尝试访问temp[0]会引发IndexError异常,并且您的处理将停止。您可以这样修复它:

if not line: # line is blank
  continue

答案 1 :(得分:0)

当一行为空时,temp也为空。没有temp[0]要打印,Python以未捕获的IndexError终止。