Python可以轻松列出文件夹中的所有文件,常用的方法包括os.listdir()
、os.scandir()
和glob.glob()
,结合递归还能实现子目录遍历,适合批量处理或文件管理任务。
-
os.listdir()
基础用法
这是最直接的方法,返回指定路径下的文件和子目录名称列表。需搭配os.path.isfile()
过滤非文件项,例如:import os files = [f for f in os.listdir('.') if os.path.isfile(f)]
-
高效遍历:
os.scandir()
比os.listdir()
性能更好,尤其适合大量文件。它返回包含文件属性的迭代器,可直接判断是否为文件:with os.scandir('.') as entries: files = [entry.name for entry in entries if entry.is_file()]
-
模式匹配:
glob.glob()
支持通配符(如*.txt
)筛选特定类型文件,简化文件名匹配操作:import glob txt_files = glob.glob('./*.txt')
-
递归遍历子目录
结合os.walk()
可深度搜索所有子目录中的文件,例如:for root, _, filenames in os.walk('.'): for file in filenames: print(os.path.join(root, file))
总结:根据需求选择合适方法——简单列表用os.listdir()
,性能优先选os.scandir()
,通配符匹配用glob.glob()
,递归遍历依赖os.walk()
。灵活运用这些方法可高效处理文件管理任务。