如何使用Python高效查找子文件夹中的所有'.txt”文件?

Patricia Arquette
发布: 2024-10-29 19:28:02
原创
859 人浏览过

How to Efficiently Find All

如何高效地递归​​搜索子文件夹中的特定文件类型

编写脚本时,通常需要深入搜索主文件夹中的子文件夹。在Python中,os.walk函数可以递归地遍历目录。但是,仅提取特定类型的文件可能很棘手。

在提供的示例中,目标是创建主文件夹及其子文件夹中所有“.txt”文件的列表。代码使用 os.walk 迭代所有文件和子文件夹,但 subFolder 保存子文件夹列表,而不是每个文件的正确子文件夹。

要解决此问题,需要使用“root”变量,它表示当前应使用目录路径而不是子文件夹。每个文件都有其对应的根目录,表示其在文件系统中的位置。

这是一个优化的解决方案:

import os
result = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.txt']
登录后复制

此代码会迭代文件系统中的所有根目录、子目录和文件路径文件夹。带有“.txt”扩展名的文件将添加到结果列表中。

或者,glob 模块可以简化基于扩展名的选择:

from glob import glob
result = [y for x in os.walk(PATH) for y in glob(os.path.join(x[0], '*.txt'))]
登录后复制

对于 Python 3.4 ,更简洁的解决方案可以使用 Pathlib:

from pathlib import Path
result = list(Path(".").rglob("*.[tT][xX][tT]"))
登录后复制

这些解决方案可以有效地搜索子文件夹,根据扩展名提取文件,并将它们作为列表返回。

以上是如何使用Python高效查找子文件夹中的所有'.txt”文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!