Python提取文本文件特定内容行遇AttributeError报错求助
问题解决:提取含指定关键词的行并修复AttributeError
错误原因分析
- 嵌套列表导致的错误:你用
array.append(file.readlines())把readlines()返回的行列表整体塞进了array里,导致array变成了[[行1,行2,...]]这种嵌套结构。循环时array[i]是整个行列表,不是单个字符串,自然没有find方法,触发AttributeError。 - find返回值判断错误:
find()返回的是关键词的索引位置,找不到返回-1,不是布尔值True/False,用== True判断永远不会成立。
修正后的代码
直接获取行列表,用in判断关键词是否存在,同时用with语句自动管理文件(避免手动关闭的疏漏):
# 读取源文件并提取目标行 with open("blabla.txt", "r") as src_file: # 直接获取所有行,不需要append lines = src_file.readlines() # 写入结果到新文件 with open("output.txt", "w") as dest_file: for line in lines: # 用in判断关键词是否在当前行里 if "\"Name\"" in line or "\"DefaultText\"" in line: dest_file.write(line)
更精简的写法(可选)
可以把读取和写入合并,减少内存占用(适合大文件):
with open("blabla.txt", "r") as src_file, open("output.txt", "w") as dest_file: for line in src_file: if "\"Name\"" in line or "\"DefaultText\"" in line: dest_file.write(line)
内容的提问来源于stack exchange,提问作者refik
相关产品推荐
相关产品推荐

