利用python正则表达式 遍历目录后取出目录树中的所有特定目录

简介:

需求:某一文件存储服务上大致目录结构为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
......上层还有若干目录├─1989pic
......上层还有若干目录│..........├─1989GC20       #这一级的目录就是目标需要得到的
......上层还有若干目录│..........│  └─TS8
......上层还有若干目录│..........│      └─96185X
......上层还有若干目录│..........│          └─000
......上层还有若干目录│..........│              └─012
......上层还有若干目录│..........└─1989GC21      #这一级的目录就是目标需要得到的
......上层还有若干目录│     └─TN3
......上层还有若干目录│          └─85341X
......上层还有若干目录│              └─000
......上层还有若干目录│                  └─001
......上层还有若干目录└─1990pic        #这一级的目录就是目标需要得到的
......上层还有若干目录  ...├─1990gc01     #以下目录未展开
......上层还有若干目录  ...├─1990gc12     #同上
......上层还有若干目录  ├─1990jj01     #同上
......上层还有若干目录  .......├─1990jj02     #同上
......上层还有若干目录  .......├─1990zk01     #同上
......上层还有若干目录  └─1990zk122    #同上


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
import  os,re
pattern  =  re. compile (r '\d{4}[a-zA-Z]{2}\d{2,}' #编译个正则表达式
listfiles  =  []
gch  =  []
tempgch  =  []
def  getgch(listfiles):
     for  files  in  listfiles:    #把传入的文件列表逐个取出用'\\'分开后写入list
         global  pattern
         global  gch
         global  tempgch
         =  files.split( '\\' )
         for  in  a:          #将list逐个取出和正则表达式匹配
             match  =  pattern.match(i)
             if  match:
                 tempgch.append(match.group())  #把匹配的结果放到临时list中
     gch = list ( set (tempgch))       #把临时list去重
     return  gch
       
def  walkdir(srcdir):     #遍历目录
     global  listfiles
     srcdir  =  os.path.abspath(srcdir)
     for  parent,dirs,files  in  os.walk(srcdir):
         for  file  in  files:
             infile  =  os.path.join(parent, file )
             listfiles.append(infile)
     #print listfiles
     getgch(listfiles)    #返回文件列表,这里似乎更应该直接返回dirs这个列表即可
srcdir  =  str ( raw_input ( "please input the dirs:\n" ))
walkdir(srcdir)



      本文转自天山三害 51CTO博客,原文链接:http://blog.51cto.com/skybug/1396081,如需转载请自行联系原作者





相关文章
|
数据采集 监控 数据安全/隐私保护
Python正则表达式:用"模式密码"解锁复杂字符串
正则表达式是处理字符串的强大工具,本文以Python的`re`模块为核心,详细解析其原理与应用。从基础语法如字符类、量词到进阶技巧如贪婪匹配与预定义字符集,结合日志分析、数据清洗及网络爬虫等实战场景,展示正则表达式的强大功能。同时探讨性能优化策略(如预编译)和常见错误解决方案,帮助开发者高效掌握这一“瑞士军刀”。最后提醒,合理使用正则表达式,避免过度复杂化,追求简洁优雅的代码风格。
320 0
|
10月前
|
数据采集 监控 算法
Python文件与目录比较全攻略:从基础操作到性能优化
文件比较的核心在于数据指纹校验,通过逐字节比对生成唯一标识,确保内容一致性。从标准库的os与filecmp到高性能第三方库如pydiffx,再到分布式与量子加密技术的未来趋势,文件比较广泛应用于数据备份、代码审查与系统监控等领域,是保障数据完整性的关键技术手段。
212 0
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
784 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
算法 Java Python
使用Python来绘制樱花树
本文以林徽因的《你是人间的四月天》为引,将春日意象与现代职场编程艺术结合,通过Python的Turtle模块绘制分形树和花瓣图案。文章详细解析了Turtle模块的使用方法、递归算法及随机性在图形生成中的应用,展示了如何用代码创造自然美感。核心代码包含tree函数(绘制分形树)和petal函数(绘制花瓣),最终生成一幅生动的春日画卷。项目不仅帮助读者掌握Turtle绘图技巧,更激发对编程艺术的兴趣,鼓励探索数字世界的无限可能。
385 5
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
382 5
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
225 4
|
算法 定位技术 Python
震惊!Python 图结构竟然可以这样玩?DFS&BFS 遍历技巧大公开
在 Python 编程中,图是一种重要的数据结构,而深度优先搜索(DFS)和广度优先搜索(BFS)是遍历图的两种关键算法。本文将通过定义图的数据结构、实现 DFS 和 BFS 算法,并通过具体示例展示其应用,帮助读者深入理解这两种算法。DFS 适用于寻找路径和检查图连通性,而 BFS 适用于寻找最短路径。掌握这些技巧,可以更高效地解决与图相关的复杂问题。
279 2
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
图论在数据结构与算法中占据重要地位,应用广泛。本文通过Python代码实现深度优先搜索(DFS)和广度优先搜索(BFS),帮助读者掌握图的遍历技巧。DFS沿路径深入搜索,BFS逐层向外扩展,两者各具优势。掌握这些技巧,为解决复杂问题打下坚实基础。
244 2
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
Python
Python 正则表达式高级应用指南
正则表达式是文本模式匹配的强大工具,Python 的 `re` 模块支持其操作。本文介绍正则表达式的高级应用,包括复杂模式匹配(如邮箱、电话号码)、分组与提取、替换操作、多行匹配以及贪婪与非贪婪模式的区别。通过示例代码展示了如何灵活运用这些技巧解决实际问题。
282 7

推荐镜像

更多