Python基于关键词从URL列表筛选笔记本电脑条目并保存的实现问题
原代码错误说明
- 关键词匹配逻辑错误:判断条件写的是
keyword in url,其中url是读取到的所有URL组成的列表,不是当前遍历的单条URL内容,匹配永远不会命中 - 写入逻辑错误:每次匹配成功就把整个URL列表赋值给
laptop并追加写入文件,会导致内容大量重复 - 文件操作不规范:
file2.close没有加括号,实际没有执行关闭文件的操作,可能导致资源泄露 - 重复打开输出文件:循环中每次写入都重新打开输出文件,IO效率极低
修正后完整代码
ddic = ['Intel', 'AMD', 'Ryzen', 'lenovo', 'chuwi', 'huawei'] laptop_urls = [] # 读取源URL文件 with open('./output/productUrl.txt', 'r', encoding='utf-8') as src_file: all_urls = src_file.readlines() # 筛选符合要求的笔记本相关URL for line in all_urls: clean_line = line.strip() if not clean_line: continue if any(keyword in clean_line for keyword in ddic): laptop_urls.append(clean_line) # 一次性写入结果文件 with open('./output/laptop.txt', 'w', encoding='utf-8') as res_file: res_file.write('\n'.join(laptop_urls))
优化说明
- 采用
with上下文管理器管理文件,自动完成资源释放,无需手动调用close方法 - 先完成全量筛选再统一写入结果,大幅减少文件IO操作,执行效率更高
- 增加空行过滤逻辑,避免无效空白内容写入结果文件
- 匹配逻辑调整为校验关键词是否存在于当前单条URL中,符合筛选需求
内容的提问来源于stack exchange,提问作者Nate
相关产品推荐
相关产品推荐

