前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python提取文件名改进

python提取文件名改进

作者头像
py3study
发布2020-01-14 15:16:17
5820
发布2020-01-14 15:16:17
举报
文章被收录于专栏:python3

   昨天晚上遇到的问题今天好好想了下,可以用正则表达式判断下文件名里是否有".",没有的话就是目录,需要进入目录再次遍历。今天工作比较累,直接贴代码了。

代码语言:javascript
复制
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级以上的目录就不行了。我的终极目标当然还是能遍历所有文件夹,应该是递归这块没做好,我继续想想。递归没学好是硬伤啊

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档