繁体   English   中英

Python - 从文本文件中提取数据(列表索引超出范围)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM