在Python中如何递归地获取多级目录下的所有文件?
时间: 2024-09-30 15:16:31 浏览: 56
python 递归获取子文件夹下的文件名 和文件类别标签
在Python中,你可以使用递归方法来获取多级目录下的所有文件。这里有两个示例:
1. **获取所有文件和子文件夹的路径**[^1]:
```python
import os
from pathlib import Path
def get_files_recursively(directory):
all_files = []
for entry in directory.iterdir():
if entry.is_file():
all_files.append(entry)
elif entry.is_dir():
all_files.extend(get_files_recursively(entry))
return all_files
root_directory = "F:/"
all_files_in_root = get_files_recursively(Path(root_directory))
```
这段代码会返回一个列表,其中包含了指定根目录及其所有子目录下的所有文件。
2. **获取文件名和类别标签(如果有的话)**[^2]:
如果你有额外的数据结构(如元组或字典)存储类别信息,可以这样实现:
```python
def get_files_and_labels(directory, labels_dict={}):
file_list = []
for entry in directory.iterdir():
if entry.is_file():
file_list.append((entry.name, labels_dict.get(entry.name, None)))
elif entry.is_dir():
sub_files = get_files_and_labels(entry, labels_dict)
file_list.extend(sub_files)
return file_list
# 假设类别标签已存在并存储在labels_dict中
root_directory = "F:/"
files_with_labels = get_files_and_labels(Path(root_directory), labels_dict)
```
这段代码不仅返回文件名,还附加了对应文件的类别标签。`labels_dict`是你预先定义的,它应该包含每个文件名到其类别标签的映射。
阅读全文