python 给定一个目录,输入一个目录与其及其所有子目录进行匹配
时间: 2024-05-03 10:21:21 浏览: 9
可以使用Python的os模块中的walk函数来遍历目录及其子目录,并使用正则表达式来匹配文件名或文件路径。
以下是一个示例代码:
```python
import os
import re
# 目录路径
dir_path = "path/to/directory"
# 正则表达式模式
pattern = ".*\.txt"
# 遍历目录及其子目录
for root, dirs, files in os.walk(dir_path):
for file in files:
file_path = os.path.join(root, file)
# 使用正则表达式匹配文件名或文件路径
if re.match(pattern, file_path):
print(file_path)
```
其中,os.walk函数返回一个三元组,分别表示当前目录路径、当前目录下的子目录列表和当前目录下的文件列表。使用os.path.join函数可以将目录路径和文件名拼接成完整的文件路径。使用re.match函数可以对文件名或文件路径进行正则表达式匹配。如果匹配成功,则输出文件路径。
相关问题
python 读取一个目录内及其子目录的所有文件
你可以使用递归函数来实现这个功能,以下是一个示例代码:
```python
import os
def get_all_files(path):
file_list = []
for root, dirs, files in os.walk(path):
for file in files:
file_list.append(os.path.join(root, file))
return file_list
# 调用函数并传入目录路径
all_files = get_all_files('/path/to/directory')
# 打印所有文件路径
for file in all_files:
print(file)
```
在上面的代码中,`os.walk()` 函数会递归地遍历指定目录下的所有子目录,并返回每个子目录中的所有文件和目录名。我们可以使用 `os.path.join()` 函数将目录和文件名拼接成完整的文件路径,并将其添加到 `file_list` 列表中。最后,我们将 `file_list` 列表作为函数的返回值,并在主程序中打印所有文件路径。
python获取给定目录下的所有子目录并体现层级关系
可以使用os.walk()函数来获取给定目录下的所有子目录并体现层级关系,示例代码如下:
```python
import os
def get_subdirs(path, level=0):
"""
获取给定目录下的所有子目录并体现层级关系
:param path: 给定目录路径
:param level: 目录层级
"""
for root, dirs, files in os.walk(path):
# 输出当前目录层级
print('{}{}'.format(' ' * 4 * level, os.path.basename(root)))
# 递归输出子目录
for dir_name in dirs:
get_subdirs(os.path.join(root, dir_name), level + 1)
# 测试
get_subdirs('/path/to/directory')
```
在这个示例中,我们通过os.walk()函数遍历给定目录下的所有子目录,并使用递归方式输出目录层级关系。函数中的level参数表示当前目录所处的层级,初始值为0,每递归一层就加1。在输出时,我们使用4个空格作为一个层级的缩进。