os.walk模块详解
时间: 2023-05-30 17:03:48 浏览: 58
os.walk()是Python语言中用于遍历目录树的函数,其基本语法如下:
```
os.walk(top, topdown=True, onerror=None, followlinks=False)
```
其中:
- top:要遍历的目录路径。
- topdown:若为True,则首先遍历top目录,然后在遍历top目录下的子目录。若为False,则先遍历top目录下的子目录,直到最后遍历top目录。
- onerror:可选参数,遍历目录出错时的回调函数。
- followlinks:若为True,则遍历目录时会跟随符号链接。
os.walk()函数会返回一个三元组,包含当前遍历的目录路径、目录下的子目录列表和目录下的文件列表。
下面是一个简单的例子:
```python
import os
root_dir = '/Users/username/Documents'
for dirpath, dirnames, filenames in os.walk(root_dir):
print(f'当前目录路径:{dirpath}')
print(f'目录下的子目录列表:{dirnames}')
print(f'目录下的文件列表:{filenames}')
```
输出如下:
```
当前目录路径:/Users/username/Documents
目录下的子目录列表:['Music', 'Photos', 'Work']
目录下的文件列表:['document1.txt', 'document2.pdf', 'document3.docx']
当前目录路径:/Users/username/Documents/Music
目录下的子目录列表:[]
目录下的文件列表:['song1.mp3', 'song2.mp3']
当前目录路径:/Users/username/Documents/Photos
目录下的子目录列表:[]
目录下的文件列表:['photo1.jpg', 'photo2.jpg', 'photo3.jpg']
当前目录路径:/Users/username/Documents/Work
目录下的子目录列表:['Project1', 'Project2']
目录下的文件列表:['file1.txt', 'file2.docx']
当前目录路径:/Users/username/Documents/Work/Project1
目录下的子目录列表:[]
目录下的文件列表:['project1_file1.txt', 'project1_file2.docx']
当前目录路径:/Users/username/Documents/Work/Project2
目录下的子目录列表:[]
目录下的文件列表:['project2_file1.txt', 'project2_file2.docx']
```
从输出结果可以看出,os.walk()函数遍历了根目录及其子目录中的所有文件和目录。