Get the App
SLTechnology News&Howtos  ›  Servers  › 

Statistics on the number of specified directory folders, file types and total file size

Shulou Source: shulou.com Published: 2022-06-03 09:57:36 10月03日 Update

#!/ usr/bin/env python

# encoding: utf-8

"""

@author: eguotangseng

@file: file_type.py

@time: 2020/02/11

"""

import os

"""

Count all the different subfile types and memory consumption by a given directory

"""

size_dict = {}

type_dict = {}

def get_size_type(path):

files = os.listdir(path)

for filename in files:

temp_path = os.path.join(path, filename)

if os.path.isdir(temp_path):

get_size_type(temp_path) #recursion

elif os.path.isfile(temp_path):

type_name=os.path.splitext(temp_path)[1]

#files without suffix names

if not type_name:

type_dict.setdefault("None", 0)

type_dict["None"] += 1

size_dict.setdefault("None", 0)

size_dict["None"] += os.path.getsize(temp_path)

else:

type_dict.setdefault(type_name, 0)

type_dict[type_name] += 1

size_dict.setdefault(type_name, 0)

size_dict[type_name] += os.path.getsize(temp_path) #Get file size

path= "path"

get_size_type(path)

for each_type in type_dict.keys():

print ("There are [ %d] files [ %s] in this folder, occupying memory [%.2f] MB" %

(each_type,type_dict[each_type],size_dict[each_type]/(1024*1024)))

print("Total number of files: [ %d]"%(sum(type_dict.values())))

print("Total memory size: [%.2f] GB"%(sum(size_dict.values())/(1024**3)))

Tags: File memory size folder directory type statistics different number of pieces suffix path utf-8 recursion number Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno macOS Linux NVidia MariaDB Microsoft