python提取文件名改进
短信预约 -IT技能 免费直播动态提醒
昨天晚上遇到的问题今天好好想了下,可以用正则表达式判断下文件名里是否有".",没有的话就是目录,需要进入目录再次遍历。今天工作比较累,直接贴代码了。
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级以上的目录就不行了。我的终极目标当然还是能遍历所有文件夹,应该是递归这块没做好,我继续想想。递归没学好是硬伤啊
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341