首页 > 解决方案 > 读取 >2000 行文本文件,但它在第 46 行停止,即为空。为什么?

问题描述

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

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)

标签: pythonparsingnewline

解决方案


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

>>> ''.split()
[]

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

if not line: # line is blank
  continue

推荐阅读