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

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

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

import os
def count_type(path,type_dict=dict()):#这里将设置了一个默认变量,即字典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
#调用方法
count_type(path_1)

这里面"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=[0]):#输入地址,返回文件下所有子文件夹个数,并返回文件夹名字列表
    for root,dirs,files in os.walk(path):
        for file in dirs:
            count[0]+=1
            print(os.path.join(root,file))
    return count[0]
#用法
getfiles(path)

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

发布了1 篇原创文章 · 获赞 0 · 访问量 12

猜你喜欢

转载自blog.csdn.net/akjfhsdkkf/article/details/104516710
今日推荐