如何在os.walk遍历时记录目录层级
时间: 2024-02-20 10:57:14 浏览: 20
可以通过记录当前目录的深度来实现,在遍历过程中,可以使用计数器记录当前目录的深度,然后将其作为参数传递给递归调用的os.walk()函数。以下是一个示例代码:
```python
import os
def walk_with_level(root_path, level=0):
for root, dirs, files in os.walk(root_path):
print(' ' * 4 * level + f'[{os.path.basename(root)}]')
for file in files:
print(' ' * 4 * (level + 1) + file)
for dir in dirs:
walk_with_level(os.path.join(root, dir), level + 1)
# Example Usage
walk_with_level('C:/Users/username/Documents')
```
在这个示例代码中,我们定义了一个名为`walk_with_level()`的函数,它接受两个参数:`root_path`表示要遍历的根目录路径,`level`表示当前目录的深度(默认为0)。在函数内部,我们使用os.walk()递归遍历了指定的目录,并打印出了当前目录及其下的文件和子目录,其中根据深度进行了缩进。在递归调用os.walk()时,我们将当前目录的深度加1作为参数传递给了递归函数。
相关问题
os.walk 遍历目录
os.walk是Python中用于遍历目录的函数。它可以递归地遍历指定目录下的所有子目录和文件,并返回它们的路径。
os.walk函数的使用方法如下:
```
import os
for root, dirs, files in os.walk("目录路径"):
# root表示当前正在遍历的目录路径
# dirs表示当前目录下的子目录列表
# files表示当前目录下的文件列表
for file in files:
# 处理文件
file_path = os.path.join(root, file)
# 对文件进行操作,例如打印文件路径
print(file_path)
```
os.walk函数会遍历指定目录及其子目录下的所有文件和文件夹。在每次遍历时,它会返回当前遍历的目录路径、子目录列表和文件列表。我们可以在内层循环中对文件进行处理,例如打印文件路径、复制文件等操作。
python os.walk() 便利目录
`os.walk()` 函数可以用于遍历指定目录及其子目录下的所有文件和文件夹。它返回一个三元组 `(dirpath, dirnames, filenames)`,其中 `dirpath` 是当前目录的路径,`dirnames` 是当前目录下的所有子目录的名称列表,`filenames` 是当前目录下的所有文件的名称列表。下面是一个遍历目录的示例:
```python
import os
root_path = '/path/to/my_dir'
for dirpath, dirnames, filenames in os.walk(root_path):
print(f'当前目录:{dirpath}')
print(f'子目录:{dirnames}')
print(f'文件:{filenames}')
```
在上面的示例中,我们首先指定了要遍历的根目录 `root_path`,然后使用 `os.walk()` 函数遍历该目录及其子目录。在循环中,变量 `dirpath` 表示当前目录的路径,`dirnames` 表示当前目录下的所有子目录的名称列表,`filenames` 表示当前目录下的所有文件的名称列表。我们可以根据需要在循环中对这些目录和文件进行操作。