python os.walk是怎样的呢?下面就让我们一起来了解一下吧:
os.walk是属于python下的一个方法,os.walk()方法一般是用来通过在目录树中游走输出在目录中的文件名,向上或是向下。简单来说,os.walk()方法是属于一个简单易用的文件、目录遍历器,能够更好地帮助我们高效的处理各种文件、目录等方面的事务。
语法格式:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
参数说明:
top -- 是所要遍历的目录的地址,返回的一般是一个三元组(即root,dirs,files)。
1.root所指的一般是当前正在遍历的这个文件夹的本身的地址。
2.dirs是属于一个list,其内容是该文件夹中所有的目录的名字(需要注意的是并不包括子目录)。
3.files也是list,其中的内容是该文件夹中所有的文件(但并不包括子目录)。
topdown --可选,为True,那么会优先遍历top目录,若不是则会优先遍历top的子目录(通常是默认为开启的)。若是topdown参数为True,那么walk就会遍历top文件夹,与top文件夹中每一个子目录。
onerror -- 可选,需要一个callable对象,当walk需要异常时,就会调用。
followlinks -- 可选,若是为True,那么就会遍历目录下的快捷方式(linux下是软连接symbolic link )实际所指的目录(默认为关闭),若是为False,那么就会优先遍历 top的子目录。
参考范例:
输入代码:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
输出结果:
./.bash_logout
./amrood.tar.gz
./.emacs
./httpd.conf
./www.tar.gz
./mysql.tar.gz
./test.py
./.bashrc
./.bash_history
./.bash_profile
./tmp
./tmp/test.py