首页 >后端开发 >Python教程 >如何使用Python高效查找子文件夹中的所有'.txt”文件?

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

Patricia Arquette
Patricia Arquette原创
2024-10-29 19:28:02938浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn