用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解析文件时出现属性错误的主要内容,如果未能解决你的问题,请参考以下文章

在 python scraper 脚本中解析 facebook mobile 时出现 lxml 错误“IOError:读取文件时出错”

尝试在 python 中使用 ioctl 读取驱动器属性时出现溢出错误

安装SQL2000时,出现错误“对于MSSQLServer服务,服务控制器操作失败:1726远程过程调用失败”,怎样解决?

解析程序包时出现问题怎么办

宏编译器错误:当参数名称出现在别处时出现“解析问题”

尝试在 python 中解析时出现 JSON 键错误