[英]Python - Extracting data from a text file (list index out of range)
我创建了一个脚本来从文本文件(电子邮件数据)中以“发件人:”开头的行中提取工作日。 我成功地这样做了,然后作为练习的一部分,我需要修改文本文件,使其导致错误。 为此,我在文本文件的第 1 行(下图)中添加了一个额外的行“From”,这导致原始代码无法工作并引发错误。 为了调试脚本,我添加了一个 if 语句来首先检查数组的长度是否大于 0 以继续执行打印语句,尽管这不起作用。 解决此错误的最有效方法是什么?
原始代码:
fhand = open('mbox-short.txt')
count = 0
for line in fhand:
if line == '': continue
line = line.rstrip()
words = line.split()
if words == []: continue
if words[0] != 'From' : continue
print(words[2])
修改的:
代码:
fhand = open('mbox-short (will fail).txt')
count = 0
for line in fhand:
if line == '': continue
line = line.rstrip()
words = line.split()
if words == []: continue
if words[0] != 'From' : continue
if len(words) >0:
print(words[2])
OUTPUT:
File "C:\Users\User\Desktop\Chapter 8\8.2 - #2.py", line 9, in <module>
print(words[2])
IndexError: list index out of range
谢谢 Aditya,问题是列表中存储了少于 3 个单词的行(这些不可能包含日期)。 结果,当引用索引 3 时,它抛出了一个错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.