我们对文件操作时,往往要遍历整个文件目录。前面已经介绍了文件和目录的操作方法,也介绍了递归函数。现在介绍一下四种目录遍历的方法(思维)。
1、方法一(普通递归)
方法(思维):根据文件目录获取该目录下的所有文件,然后对这些文件进行判断,如果是文件夹,则调用函数本身,如果是普通文件,则打印出文件名。
代码如下:
2、方法二(模拟栈)
栈特点:先进后出,模拟栈方法遍历目录,深度遍历。
方法(思维):先创建一个空的列表,把文件目录当做一个元素添加进列表,从列表末尾取出一个元素(文件目录),获取该目录下的所有文件,然后对这些文件进行判断,如果是文件夹,则调用函数本身(添加进列表),如果是普通文件,则打印出文件名,如此循环处理这个列表。
代码如下:
3、方法三(模拟队列)
队列特点:先进先出,模拟队列方法遍历目录,广度遍历。
方法(思维):先生成一个队列,把文件目录当做一个元素添加进队列,从队列中取出一个元素(文件目录),获取该目录下的所有文件,然后对这些文件进行判断,如果是文件夹,则调用函数本身(添加进队列),如果是普通文件,则打印出文件名,如此循环处理这个队列。
代码如下:
4、方法四(os.walk(path))
walk()方法主要参数有path,其他参数请参考官方文档
path:所要遍历的目录,它返回的是一个元组(root,dirs,files)
其中:
root 是指当前正在遍历的这个文件夹的本身的路径
dirs 是一个 list ,列表中的元素是该文件夹中所有的目录的名字(不包括子目录)
files 是一个 list , 列表中的元素是该文件夹中所有的文件(不包括子目录)
代码如下:
| 留言与评论(共有 0 条评论) |