用python解析文件时出现属性错误

Posted

技术标签:

【中文标题】用python解析文件时出现属性错误【英文标题】:Attribute error in parsing a file with python 【发布时间】:2013-11-21 18:19:55 【问题描述】:

我想创建一个程序来读取文件并获取人们在测试中得分的百分比。我使用了以下代码。然后 next() 部分我用来跳过不包含有用信息的行。但是,我不断收到此错误:

lines.next() AttributeError: 'list' 对象没有属性 'next'

def process_line(percent):
number = int(percent/10);
if number == 10:
    ui.raise_bar(9)
else: 
    ui.raise_bar(number)



source = open('statistics1.txt', 'r');
lines = source.readlines()
for line in lines:
    if line[0] == '-' or line[0] == '=' or line[0] == 'I':
        lines.next()
    else:
        process_line(line[3])    

我错过了什么?

【问题讨论】:

【参考方案1】:

错误信息非常准确:'lines' 是一个字符串列表,不知道'next'。它不是一个迭代器左右。您可以改用简单的continue,然后继续下一次迭代。或者更好的是,重写条件:

for line in lines:
    if line[0] not in '-=I':
        process_line(line[3])    

顺便说一句,你不需要预先阅读整个文件,

source = open('statistics1.txt')
for line in source:
    ....

会做同样的事情并在处理时读取每一行。 编辑:请注意line[3] 为您提供了字符串中的第三个字符,这可能不是您想要的。也许你想要line.split()[3] 之类的东西。

【讨论】:

以上是关于用python解析文件时出现属性错误的主要内容,如果未能解决你的问题,请参考以下文章