利用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,如需转载请自行联系原作者





相关文章
|
1月前
|
Python
在Python中,可以使用内置的`re`模块来处理正则表达式
在Python中,可以使用内置的`re`模块来处理正则表达式
55 5
|
1月前
|
算法 定位技术 Python
震惊!Python 图结构竟然可以这样玩?DFS&BFS 遍历技巧大公开
在 Python 编程中,图是一种重要的数据结构,而深度优先搜索(DFS)和广度优先搜索(BFS)是遍历图的两种关键算法。本文将通过定义图的数据结构、实现 DFS 和 BFS 算法,并通过具体示例展示其应用,帮助读者深入理解这两种算法。DFS 适用于寻找路径和检查图连通性,而 BFS 适用于寻找最短路径。掌握这些技巧,可以更高效地解决与图相关的复杂问题。
29 2
|
1月前
|
Python
不容错过!Python中图的精妙表示与高效遍历策略,提升你的编程艺术感
本文介绍了Python中图的表示方法及遍历策略。图可通过邻接表或邻接矩阵表示,前者节省空间适合稀疏图,后者便于检查连接但占用更多空间。文章详细展示了邻接表和邻接矩阵的实现,并讲解了深度优先搜索(DFS)和广度优先搜索(BFS)的遍历方法,帮助读者掌握图的基本操作和应用技巧。
39 4
|
1月前
|
算法 Python
Python图论探索:从理论到实践,DFS与BFS遍历技巧让你秒变技术大牛
图论在数据结构与算法中占据重要地位,应用广泛。本文通过Python代码实现深度优先搜索(DFS)和广度优先搜索(BFS),帮助读者掌握图的遍历技巧。DFS沿路径深入搜索,BFS逐层向外扩展,两者各具优势。掌握这些技巧,为解决复杂问题打下坚实基础。
37 2
|
1月前
|
数据采集 Web App开发 iOS开发
如何使用 Python 语言的正则表达式进行网页数据的爬取?
使用 Python 进行网页数据爬取的步骤包括:1. 安装必要库(requests、re、bs4);2. 发送 HTTP 请求获取网页内容;3. 使用正则表达式提取数据;4. 数据清洗和处理;5. 循环遍历多个页面。通过这些步骤,可以高效地从网页中提取所需信息。
|
2月前
|
Python
【收藏备用】Python正则表达式的7个实用技巧
【收藏备用】Python正则表达式的7个实用技巧
33 1
|
2月前
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
31 1
|
2月前
|
数据安全/隐私保护 Python
Python实用正则表达式归纳
Python实用正则表达式归纳
20 3
|
2月前
|
Python
Python 正则表达式高级应用指南
正则表达式是文本模式匹配的强大工具,Python 的 `re` 模块支持其操作。本文介绍正则表达式的高级应用,包括复杂模式匹配(如邮箱、电话号码)、分组与提取、替换操作、多行匹配以及贪婪与非贪婪模式的区别。通过示例代码展示了如何灵活运用这些技巧解决实际问题。
33 7
|
2月前
|
编解码 UED Python
Python批量修改指定目录下图片的大小名文章
Python批量修改指定目录下图片的大小名文章
22 1