【Python系列】Python os.walk的用法与举例

【Python入门教程】 专栏收录该内容
47 篇文章 46 订阅 ¥99.00 ¥39.90

 

转载自:http://blog.csdn.net/bagboy_taobao_com/article/details/8938126

 

os.walk(top, topdown=True, οnerrοr=None, followlinks=False) 

可以得到一个三元tupple(dirpath, dirnames, filenames), 

第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。

dirpath 是一个string,代表目录的路径,

dirnames 是一个list,包含了dirpath下所有子目录的名字。

filenames 是一个list,包含了非目录文件的名字。

这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).

 

通过for循环自动完成递归枚举

例如:

F:\aaa 目录是这样的文件目录结构

F:\aaa

|--------1.txt

|--------2.txt

|--------3.txt

|--------4

         |-------5.txt

         |-------6.txt

         |-------7.txt

 

#!/usr/bin/env python  
# 2.py  
# use UTF-8  
# Python 3.3.0  
  
# os.walk()的使用  
import os  
  
# 枚举dirPath目录下的所有文件  
  
def main():  
#begin  
    fileDir = "F:" + os.sep + "aaa"     # 查找F:\aaa 目录下    
    for root, dirs, files in os.walk(fileDir):  
    #begin  
        print(root)  
        print(dirs)  
        print(files)  
    #end  
    os.system("pause")  
#end  
  
if __name__ == '__main__':  
#begin  
    main()  
#end  
  
  
# 输出  
# F:\aaa  
# ['4']  
# ['1.txt', '2.txt', '3.txt']  
# F:\aaa\4  
# []  
# ['5.txt', '6.txt', '7.txt']  
 


你也可以这样

#!/usr/bin/env python  
# 3.py  
# use UTF-8  
# Python 3.3.0  
  
# os.walk()的使用  
import os  
  
# 枚举dirPath目录下的所有文件  
  
def main():  
#begin  
    fileDir = "F:" + os.sep + "aaa"     # 查找F:\aaa 目录下    
    for a in os.walk(fileDir):  
    #begin  
        print(a[0])  
        print(a[1])  
        print(a[2])  
    #end  
    os.system("pause")  
#end  
  
if __name__ == '__main__':  
#begin  
    main()  
#end  
  
  
# 输出  
# F:\aaa  
# ['4']  
# ['1.txt', '2.txt', '3.txt']  
# F:\aaa\4  
# []  
# ['5.txt', '6.txt', '7.txt']  


通过for循环即可完成目录的递归.

你还可以这样

#!/usr/bin/env python  
# 2.py  
# use UTF-8  
# Python 3.3.0  
  
# os.walk()的使用  
import os  
  
# 枚举dirPath目录下的所有文件  
  
def main():  
#begin  
    fileDir = "F:" + os.sep + "aaa"     # 查找F:\aaa 目录下    
    for root, dirs, files in os.walk(fileDir):  
    #begin  
        for dir in dirs:  
        #begin  
            print(os.path.join(root, dir))  
        #end  
        for file in files:  
        #begin  
            print(os.path.join(root, file))  
        #end  
    #end  
    os.system("pause")  
#end  
  
if __name__ == '__main__':  
#begin  
    main()  
#end  
  
  
# 输出  
# F:\aaa\4  
# F:\aaa\1.txt  
# F:\aaa\2.txt  
# F:\aaa\3.txt  
# F:\aaa\4\5.txt  
# F:\aaa\4\6.txt  
# F:\aaa\4\7.txt  
 
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
<p style="text-align:left;"> <span> </span> </p> <p class="ql-long-24357476" style="font-size:11pt;color:#494949;"> <span style="font-family:"color:#E53333;font-size:14px;background-color:#FFFFFF;line-height:24px;"><span style="line-height:24px;">限时福利1:</span></span><span style="font-family:"color:#3A4151;font-size:14px;background-color:#FFFFFF;">购课进答疑群专享柳峰(刘运强)老师答疑服务。</span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <strong><span style="color:#337FE5;font-size:14px;">为什么说每一个程序员都应该学习MySQL?</span></strong> </p> <p class="ql-long-24357476"> <span style="font-size:14px;">根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。</span> </p> <p class="ql-long-24357476"> <img src="https://img-bss.csdn.net/202003301212574051.png" alt="" /> </p> <p class="ql-long-24357476"> <span style="font-size:14px;">使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。</span><br /> <br /> <span style="font-size:14px;">学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能!</span> </p> <span></span> <p> <br /> </p> <p> <span> </span> </p> <h3 class="ql-long-26664262"> <p style="font-size:12pt;"> <strong class="ql-author-26664262 ql-size-14"><span style="font-size:14px;color:#337FE5;">【课程设计】</span></strong> </p> <p style="font-size:12pt;"> <span style="color:#494949;font-weight:normal;"><br /> </span> </p> <p style="font-size:12pt;"> <span style="color:#494949;font-weight:normal;font-size:14px;">在本课程中,刘运强老师会结合自己十多年来对MySQL的心得体会,通过课程给你分享一条高效的MySQL入门捷径,让学员少走弯路,彻底搞懂MySQL。</span> </p> <p style="font-size:12pt;"> <span style="color:#494949;font-weight:normal;"><br /> </span> </p> <p style="font-size:12pt;"> <span style="font-weight:normal;font-size:14px;">本课程包含3大模块:</span><span style="font-weight:normal;font-size:14px;"> </span> </p> </h3> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <strong class="ql-author-26664262"><span style="font-size:14px;">一、基础篇:</span></strong> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span class="ql-author-26664262" style="font-size:14px;">主要以最新的MySQL8.0安装为例帮助学员解决安装与配置MySQL的问题,并对MySQL8.0的新特性做一定介绍,为后续的课程展开做好环境部署。</span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span class="ql-author-26664262" style="font-size:14px;"><br /> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <strong class="ql-author-26664262"><span style="font-size:14px;">二、SQL语言篇</span></strong><span class="ql-author-26664262" style="font-size:14px;">:</span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span class="ql-author-26664262" style="font-size:14px;">本篇主要讲解SQL语言的四大部分数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL,</span><span style="font-size:14px;">学会熟练对库表进行增删改查等必备技能。</span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;"><br /> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <strong class="ql-author-26664262"><span style="font-size:14px;">三、MySQL进阶篇</span></strong><span style="font-size:14px;">:</span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <span style="font-size:14px;">本篇可以帮助学员更加高效的管理线上的MySQL数据库;具备MySQL的日常运维能力,语句调优、备份恢复等思路。</span> </p> <span><span> <p style="font-size:11pt;color:#494949;"> <span style="font-size:14px;"> </span><img src="https://img-bss.csdn.net/202004220208351273.png" alt="" /> </p> </span></span>
本套餐将包括两个重磅性的课程与一个赠送学习的课程,分别为SpringBoot实战视频教程与RabbitMQ实战教程跟SSM整合开发之poi导入导出Excel。目的是为了让各位小伙伴可以从零基础一步一个脚印学习微服务项目的开发,特别是SpringBoot项目的开发,之后会进入第二个课程:RabbitMQ的实战,即消息中间件在实际项目或者系统中各种业务模块的实战并解决一些常见的典型的问题!核心的知识点分别包括 一、SpringBoot实战历程课程 (1)SpringBoot实战应用场景的介绍与代码实战 (2)发送邮件服务、上传下载文件服务、Poi导入导出Excel (3)单模块与多模块项目构建、项目部署打包、日志、多环境配置、lombok、validator以及mybatis整合实战跟多数据源实战 (4)Redis缓存中间件的实战与缓存雪崩跟缓存穿透等问题的解决实战 (5)RabbitMQ消息中间件在业务模块异步解耦、通信、消息确认机制以及并发量配置等的实战 二、RabbitMQ实战教程课程 (1)RabbitMQ的官网权威技术手册拜读,认识并理解各大专有名词,如队列,交换机,路由,死信队列,消息确认机制等等 (2)RabbitMQ在业务服务模块之间的异步解耦通信实战,如异步记录日志与发送邮件等 (3)商城系统抢单高并发情况下RabbitMQ的限流作用与代码实战 (4)消息确认机制与并发量配置并用来实战商城用户下单 (5)死信队列深入讲解与DLX,DLK,TTL等概念的讲解并用来实战 “支付系统用户下单后支付超时而失效其下单记录”实战 详情,各位小伙伴可以查看两个课程的目录。相信学完该套餐相关课程后,你的实战能力将大大提升!涨薪将不再遥遥无期! 最后,赠送的SSM整合开发之POI导入导出Excel目的是为了让各位小伙伴也可以学习Spring+SpringMVC+Mybatis整合开发的项目,让大家一对比SpringBoot与SPring的项目开发流程以及复杂程度!!! 相信学完之后,你会对SpringBoot爱不释手!!
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值