用python统计文件夹下所有类型文件总数

在学习python代码的过程中,有时候可以编写一些小程序练练手,今天,我就来分享一下我的几个python小程序,主要是来统计文件夹下各种类型的文件总数。

第一个,输入地址,返回目录下所有文件类型及其个数

import os
def count_type(path,type_dict):#这里将设置了两个变量,一个路径,一个字典
    for root, dirs, files in os.walk(path):#用walk()函数遍历目录下所有的文件

        for name in files:
            type_dict.setdefault(os.path.splitext(name)[1],0)  #用splitext()函数返回文件名的后缀。并且将不同类型的后缀写入字典的key,其values值就是其累计数

            type_dict[os.path.splitext(name)[1]] += 1
    return type_dict
#调用方法
a={}
count_type(path_1,a)

这里面"os.walk(path)“函数主要用于遍历文件目录下的所有文件,一般调用格式都是如上方的"for root, dirs, files in os.walk(path)”,其中path是遍历的路径,root、dirs、files是的含义分别如下:

  • root 所指的是当前正在遍历的这个文件夹的本身的地址;
  • dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录);
  • files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)。

该函数的详情用法见此链接:菜鸟教程os.walk()详解

这里的"type_dict.setdefault(key, default=None)"是字典的一种用法,在字典加入新键,如果键重复,则不改变字典。如果键不重复,则加入新键key,且值为默认值None。
该函数的详情用法见此链接:菜鸟教程setdefault()函数详解

这里的“os.path.split(path)”函数,作用是分割路径,并返回路径名和文件扩展名的元组

第二个,输入要搜索文件名,返回文件所在地址

def GetFiles(path,name):#输入地址,要搜索的文件夹名,返回文件所在地址
    for root,dirs,files in os.walk(path):
        for name_1 in files:
            if name in name_1:
                print(os.path.join(root,name_1))
#用法
GetFiles(path,'python')

这里用到了字符串的一个用法“str_1 in str_2”,其含义是:如果str_2包含str_1的所有字符,则该表达式返回True,否则返回False。
这里的“os.path.join(path1,path2)”函数,作用是把目录和文件名合成一个路径。

第三,统计目录下所有子文件夹的个数,并返回文件夹名字列表

def getfiles(path,count_list):#这里设置了两个变量,一个路径,一个是列表
    for root,dirs,files in os.walk(path):
        for file in dirs:
            count_list[0]+=1
            print(os.path.join(root,file))
    return count_list[0]
#用法
b=[0]#主义这里不能写成”b=[]",因为这样写在函数里直接调用b[0]会报错,因为没有b[0]
getfiles(path,b)

以上就是我写的几个python小程序,希望可以对大家有所帮助。康撒米哒~~~

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值