os.walk模块详解
时间: 2023-05-30 20:03:51 浏览: 82
os.walk()是Python中的一个目录遍历函数,它会遍历指定目录及其子目录中的所有文件和文件夹。该函数返回一个三元组(root, dirs, files),其中root表示遍历的根目录,dirs表示该目录下的所有子目录,files表示该目录下的所有文件。
os.walk()函数的语法如下:
```python
for root, dirs, files in os.walk(top, topdown=True, onerror=None, followlinks=False):
# 处理文件和文件夹
```
参数说明:
- top:待遍历的根目录路径。
- topdown:可选,默认为True,表示首先遍历根目录,然后在遍历子目录;如果为False,则表示首先遍历子目录,然后遍历根目录。
- onerror:可选,默认为None,表示当函数遇到错误时的处理方式。如果设置为一个函数,则会在遇到错误时调用该函数处理错误,否则直接抛出异常。
- followlinks:可选,默认为False,表示是否遵循符号链接。如果为True,则会遍历符号链接指向的目录,否则不会。
os.walk()函数的返回值是一个生成器,每次迭代生成一个三元组(root, dirs, files)。
示例:
```python
import os
for root, dirs, files in os.walk('/path/to/dir'):
print('root:', root)
print('dirs:', dirs)
print('files:', files)
```
输出:
```
root: /path/to/dir
dirs: ['subdir1', 'subdir2']
files: ['file1', 'file2']
root: /path/to/dir/subdir1
dirs: ['subsubdir1', 'subsubdir2']
files: ['subfile1', 'subfile2']
root: /path/to/dir/subdir1/subsubdir1
dirs: []
files: ['subsubfile1', 'subsubfile2']
root: /path/to/dir/subdir1/subsubdir2
dirs: []
files: ['subsubfile3', 'subsubfile4']
root: /path/to/dir/subdir2
dirs: []
files: ['subfile3']
```
上述示例中,遍历的根目录是"/path/to/dir",该目录下有两个子目录"subdir1"和"subdir2",以及两个文件"file1"和"file2"。遍历到"subdir1"时,该目录下有两个子目录"subsubdir1"和"subsubdir2",以及两个文件"subfile1"和"subfile2",以此类推。
阅读全文