如何在Python的os.walk循环中遍历列表所有元素以匹配文件?
遍历列表元素并修改现有代码的实现方法
直接在原有检查文件名的逻辑外层,新增一个遍历summaryList的循环即可,修改后的完整代码如下:
import os import fnmatch summaryList=['hi','bye','hello'] def list(path): result = [] for root, dirs, files in os.walk(path): for name in files: # 新增循环:逐个遍历summaryList里的每个元素 for keyword in summaryList: if fnmatch.fnmatch(name, keyword + '.txt'): result.append(os.path.join(root, name)) return result # 补充返回结果,否则调用函数拿不到收集到的文件路径
关键修改点说明:
- 新增
for keyword in summaryList:循环,把原来固定取summaryList[1]的逻辑,换成遍历列表的每个元素,这样每个关键词都会被用来匹配文件名 - 补上
return result语句,原函数没有返回值,调用后无法获取收集到的文件路径 - 补充了
os和fnmatch的导入语句,实际运行代码时必须导入这两个模块才能正常工作
内容的提问来源于stack exchange,提问作者pkk
相关产品推荐
相关产品推荐

