Python 获取指定路径下的指定后缀的文件名

由于工作需要,今日领导交给我一个任务,让我把软件底层这块的所有C文件都一一列出来,程序将根据文件进行RAM的地址分配,考虑到底层这部分的代码文件量大,且该目录下的子文件夹极多,一一列出来,恐怕一上午或者一下午才能列出,而且由于文件多,还不好检查。

正好最近在自学pyhon,想着看看能不能用python简化工作的繁琐,最后有了下面的这段程序。

import os
cFileNumber = 0
dir = 'D://BuildArea//10031799_MT62P3_MiniAPP//10031799_HAL' #指定文件夹的路径
for root, dirs, files in os.walk(dir):                      #遍历该文件夹
    for file in files:                                      #遍历刚获得的文件名files
        (filename, extension) = os.path.splitext(file)      #将文件名拆分为文件名与后缀
        if (extension == '.c'):                             #判断该后缀是否为.c文件
            cFileNumber= cFileNumber+1                      #记录.c文件的个数为对应文件号
            #print(cFileNumber, os.path.join(root,filename)) #输出文件号以及对应的路径加文件名
            print("PLACE_RAM(" + filename + ')')           #以PLACE_RAM(文件名)形式输出文件名

 上诉代码的分析理解如下:

目的是为了获得指定文件夹下的包括子文件夹下的所有的“.c”文件,思路是,首先遍历整个文件夹以及该文件夹下的子文件夹,从而得到这些文件的文件名,然后将文件名与文件名的后缀进行分离,再将分离的文件名以某种形式输出。

python模块os中的os.walk()函数可以遍历所有文件夹下的所有的文件名,向上或者向下,可以帮助我们简易高效的处理文件以及目录方面的事情,该方法的语法格式如下:

os.walk(top, topdown=True, onerror=None, followlinks=False) 
  • top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。

    • root 所指的是当前正在遍历的这个文件夹的本身的地址
    • dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
    • files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
  • topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。

  • onerror -- 可选,需要一个 callable 对象,当 walk 需要异常时,会调用。

  • followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

上述程序中,想要获得任意指定后缀名的文件名,只需将程序中的'.c'改成期望的后缀即可。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值