Python文件读取代码运行时触发AttributeError,请求技术指导
解决AttributeError: 'list' object has no attribute 'replace'的问题
嘿,我来帮你搞定这个报错~你遇到的问题很明确:lines是一个列表对象,而replace()是字符串专属的方法,所以直接给整个列表调用replace()肯定会报错啦。
咱们先理清楚你原来的代码逻辑:你把文件里的每一行都存进了列表lines里,然后想一次性去掉所有行里的\r,但忽略了列表本身没有这个方法——得对列表里的每一个字符串元素单独处理才行。
给你两种修正方案,选哪个都可以:
方案1:遍历每行时直接处理
在把每行添加到列表之前,先对该行字符串做replace处理:
f = open("data/summarizetext.txt", "r") lines = [] for line in f: # 对当前行的字符串去掉\r后再加入列表 cleaned_line = line.replace('\r', '') lines.append(cleaned_line) f.close() print(lines)
方案2:用列表推导式简化代码(推荐)
这种写法更简洁,而且用with语句还能自动帮你关闭文件,避免手动close()可能出现的问题:
with open("data/summarizetext.txt", "r") as f: lines = [line.replace('\r', '') for line in f] print(lines)
简单总结一下:以后遇到类似的报错,先看看你调用方法的对象是什么类型——如果是列表,那就要考虑是不是应该遍历里面的元素来操作,而不是直接给列表用字符串的方法哦~
内容的提问来源于stack exchange,提问作者Atanu Mandal
相关产品推荐
相关产品推荐

