python下递归遍历目录和文件的方法介绍


当前第2页 返回上一页

二.os模块的walk()函数

os.walk(top, topdown=True, onerror=None, followlinks=False)

返回一个3个元素的元祖,(dirpath, dirnames, filenames),

  • dirpath:要列出指定目录的路径

  • dirnames:目录下的所有文件夹

  • filenames:目录下的所有文件

参数一:top – 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。

参数二:topdown –可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。

参数三:onerror – 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。

参数四:followlinks – 设置为 true,则通过软链接访问目录。


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

#coding:utf-8

import os

 

def getallfiles(path):

 allfile=[]

 for dirpath,dirnames,filenames in os.walk(path):

  for dir in dirnames:

   allfile.append(os.path.join(dirpath,dir))

  for name in filenames:

   allfile.append(os.path.join(dirpath, name))

 return allfile

if name == 'main':

 path = "C:\Users\zs\PycharmProjects\demo"

 allfile=getallfiles(path)

 for file in allfile:

  print file

 

 

 

 

#输出结果

 

C:\Users\zs\PycharmProjects\demo\.idea

C:\Users\zs\PycharmProjects\demo\locale

C:\Users\zs\PycharmProjects\demo\functiondemo.py

C:\Users\zs\PycharmProjects\demo\index.py

C:\Users\zs\PycharmProjects\demo\name.txt

C:\Users\zs\PycharmProjects\demo\text.txt

C:\Users\zs\PycharmProjects\demo\.idea\demo.iml

C:\Users\zs\PycharmProjects\demo\.idea\encodings.xml

C:\Users\zs\PycharmProjects\demo\.idea\misc.xml

C:\Users\zs\PycharmProjects\demo\.idea\modules.xml

C:\Users\zs\PycharmProjects\demo\.idea\workspace.xml

C:\Users\zs\PycharmProjects\demo\locale\en_US

C:\Users\zs\PycharmProjects\demo\locale\zh_CN

C:\Users\zs\PycharmProjects\demo\locale\en_US\LC_MESSAGES

C:\Users\zs\PycharmProjects\demo\locale\en_US\LC_MESSAGES\django.po

C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES

C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES\lang.mo

C:\Users\zs\PycharmProjects\demo\locale\zh_CN\LC_MESSAGES\lang.po

小结

两种方法输入结果是一样的。但是在输入的顺序有差异。对比感觉python的os模块的walk()方法比较简

以上就是python下递归遍历目录和文件的方法介绍的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

Python中import用法(代码示例)

Python初学者常见的七种错误及解决方法

Python常见语句汇总

如何用Python求第三条边边长

Python写完程序怎么运行

Python中5个常用的内置高阶函数的介绍(附代码)

【插入排序实现】Python

Python怎么去重

Python 2.7在linux下安装或升级的操作方法

random模块在Python哪个版本

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...