在Python中,读取一个文件夹内的所有子文件夹是一项常见的任务。这不仅对于文件管理非常有用,也在许多数据处理和自动化脚本中扮演着重要角色。本文将揭示一些高效读取Python中文件夹内所有子文件夹的方...
在Python中,读取一个文件夹内的所有子文件夹是一项常见的任务。这不仅对于文件管理非常有用,也在许多数据处理和自动化脚本中扮演着重要角色。本文将揭示一些高效读取Python中文件夹内所有子文件夹的方法。
os模块Python的os模块提供了一个简单而强大的方式来遍历文件夹和子文件夹。以下是使用os.walk()方法来遍历所有子文件夹的示例:
import os
def list_subfolders(root_folder): subfolders = [] for foldername, subfolders, filenames in os.walk(root_folder): for subfolder in subfolders: subfolders.append(os.path.join(foldername, subfolder)) return subfolders
root_folder = '/path/to/your/folder'
subfolders = list_subfolders(root_folder)
print(subfolders)os.walk()方法解析os.walk(top, topdown=True, onerror=None, followlinks=False): 这是一个生成器,返回一个三元组(root, dirs, files),其中:
root 是当前正在遍历的文件夹路径。dirs 是一个列表,包含当前文件夹下所有子文件夹的名字。files 是一个列表,包含当前文件夹下所有非文件夹文件的文件名。topdown=True: 如果设置为True,则总是先访问top目录,然后访问其子目录。
pathlib模块Python 3.4及以上版本引入了pathlib模块,它提供了一种面向对象的方式来处理文件系统路径。以下是使用pathlib来遍历所有子文件夹的示例:
from pathlib import Path
def list_subfolders(root_folder): subfolders = [str(d) for d in Path(root_folder).rglob('*/*') if d.is_dir()] return subfolders
root_folder = '/path/to/your/folder'
subfolders = list_subfolders(root_folder)
print(subfolders)pathlib.Path.rglob(pattern)方法解析Path.rglob(pattern): 这个方法返回所有匹配pattern的Path实例,包括当前目录下的文件和子目录下的文件。通过上述方法,你可以轻松地读取Python中文件夹内的所有子文件夹。这些方法简单且高效,适合于各种文件管理和数据处理任务。