python里两种遍历目录的方法
os.walk
函数声明:os.walk(top,topdown=True,onerror=None)
(1)参数top表示需要遍历的顶级目录的路径。
(2)参数topdown的默认值是“True”表示首先返回顶级目录下的文件,然后再遍历子目录中的文件。当topdown的值为"False"时,表示先遍历子目录中的文件,然后再返回顶级目录下的文件。
(3)参数onerror默认值为"None",表示忽略文件遍历时的错误。如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历。
返回值:函数返回一个元组,含有三个元素。这三个元素分别是:每次遍历的路径名、路径下子目录列表、目录下文件列表。
请看例子:
import os.path def walk(arg):
for root,dirs,files in os.walk(arg):
for file in files:
print os.path.join(root,file) def main():
path ='c:\\Users\\jim_wan\\Desktop'
walk(path) if __name__ == '__main__':
main()
os.path.walk
函数声明:os.path.walk(top,func,arg)
(1)参数top表示需要遍历的目录路径
(2)参数func表示回调函数,即对遍历路径进行处理的函数。所谓回调函数,是作为某个函数的参数使用,当某个时间触发时,程序将调用定义好的回调函数 处理某个任务。注意:walk的回调函数必须提供三个参数:第1个参数为os.path.walk的参数arg,第2个参数表示目录dirname,第3 个参数表示文件列表names。注意:os.path.walk的回调函数中的文件列表不和os.walk()那样将子目录和文件分开,而是混为了一摊, 需要在回调函数中判断是文件还是子目录。
(3)参数arg是传递给回调函数的元组,为回调函数提供处理参数,arg可以为空。回调函数的第1个参数就是用来接收这个传入的元组的。
请看例子:
import os.path def Vist(arg,dirname,names):
for filepath in names:
print os.path.join(dirname,filepath) def main():
path ='c:\\Users\\jim_wan\\Desktop'
os.path.walk(path,Vist,()) if __name__ == '__main__':
main()
可以看到实现同样的功能,os.walk和os.path.walk代码量基本差不多。唯一区别是os.walk比较简单直接,容易理解;而os.path.walk用了回调函数,稍微难理解点。所以用哪个还是要视个人情况而定。
最新文章
- JS回调函数全解析教程
- Nodejs学习总结 -Express入门(一)
- [转]逻辑斯蒂回归 via python
- Node.js入门:Node.js&;NPM的安装与配置
- 移动web开发之像素和DPR
- [转] git fetch与pull
- Web前端开发基础 第四课(CSS文字和段落排版)
- CPU的ADDR2为什么跟SDRAM的0地址线接在一起
- rpm方式安装gcc缺少依赖项的解决方法
- SpringMVC 简单
- [转]jquery中使用event.target的几点
- 转载:C# HashSet 用法
- java优势
- 一口一口吃掉Volley(四)
- React+ANTD项目使用后的一些关于生命周期比较实用的心得
- CSS中清除浮动的作用以及如何清除浮动
- Luogu2839 Middle 主席树、二分答案
- 第一章:认识Ajax
- Nginx配置跨域请求 Access-Control-Allow-Origin *
- quartz 2.1.6使用方法