Calcular y mostrar el tamaño de la carpeta especificada

necesidades de fondo

A veces, el espacio en disco de la computadora es cada vez más pequeño y es necesario eliminar algunos archivos que ocupan mucho espacio. La forma más estúpida es verificar el tamaño de una determinada carpeta una por una, lo cual es demasiado lento.

representaciones

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Código

import os
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'sans-serif'  # 设置字体为无衬线字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置使用SimHei字体(中文的衬线字体)

plt.rcParams['font.size'] = 12
plt.rcParams['axes.linewidth'] = 1.5
plt.rcParams['axes.grid'] = True
def get_folder_size(folder):
    total_size = 0
    for root, dirs, files in os.walk(folder):
        for file in files:
            file_path = os.path.join(root, file)
            total_size += os.path.getsize(file_path)
    return total_size / (1024 * 1024)  # 转换为MB

def get_folder_sizes(directory):
    folder_sizes = {
    
    }
    for item in os.listdir(directory):
        item_path = os.path.join(directory, item)
        if os.path.isdir(item_path):
            folder_size = get_folder_size(item_path)
            folder_sizes[item] = folder_size
    return folder_sizes

def plot_bar_chart(folder_sizes):
    folders, sizes = zip(*folder_sizes.items())
    colors = plt.cm.tab20c(range(len(folders)))
    plt.figure(figsize=(10, 6))
    plt.bar(folders, sizes, color=colors)
    plt.xlabel('Folders')
    plt.ylabel('Size (MB)')
    plt.title('Folder Sizes')
    plt.xticks(rotation=45, ha='right')
    plt.tight_layout()
    plt.show()

def plot_pie_chart(folder_sizes):
    folders, sizes = zip(*folder_sizes.items())
    plt.figure(figsize=(8, 8))
    plt.pie(sizes, labels=folders, autopct='%1.1f%%', startangle=140)
    plt.title('Folder Size Distribution')
    plt.axis('equal')
    plt.show()

if __name__ == "__main__":
    # current_directory = os.getcwd()
    target_directory = r"D:\A计算机学习文件夹"  
    folder_sizes = get_folder_sizes(target_directory)

    for folder, size in folder_sizes.items():
        print(f"{
      
      folder}: {
      
      size:.2f} MB")

    plot_bar_chart(folder_sizes)
    plot_pie_chart(folder_sizes)


Supongo que te gusta

Origin blog.csdn.net/qq_41661809/article/details/131995142
Recomendado
Clasificación