读取 >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)

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

>>> ''.split()
[]

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

if not line: # line is blank
continue

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

最新更新