发布时间:2019-07-19 09:56:49编辑:auto阅读(1570)
昨天晚上遇到的问题今天好好想了下,可以用正则表达式判断下文件名里是否有".",没有的话就是目录,需要进入目录再次遍历。今天工作比较累,直接贴代码了。
import os import re addr='./test/' filenames=os.listdir(addr) out=open('names.txt','w') pattern=re.compile(r'\w*\.{1}\w*') def operate(filenames): for name in filenames: match=pattern.match(name) if match: if '.txt'==name[-4:]: out.write(name[:-4]+'\n') elif '.jpg'==name[-4:]: out.write(name[:-4]+'\n') elif '.rm'==name[-3:]: out.write(name[:-3]+'\n') else: continue else: out.write(name+'\n') out.write('********\n') filenames_temp=os.listdir(addr+name+'/') operate(filenames_temp) out.write('********\n') operate(filenames) out.close()
与昨天相比做了些改动,把标记flag也去掉了,感觉没什么必要。6中正则表达式的含义是匹配"."前后有字符的字符串。首先函数会先进行一个判定,如果是文件夹的话,会再次调用operate函数。测试下来,这个程序不足的地方在于只能包含2级目录,3级以上的目录就不行了。我的终极目标当然还是能遍历所有文件夹,应该是递归这块没做好,我继续想想。递归没学好是硬伤啊
上一篇: 利用python获得时间
下一篇: python3.7---爬取网页图片
47484
45786
36784
34317
28955
25589
24436
19606
19102
17627
5458°
6041°
5563°
5632°
6566°
5370°
5370°
5878°
5851°
7163°