前言
这个代码并不难懂,但是在一定情况下,能够为你的自动化脚本提供便利。
该代码主要是:根据大小,对某个目录的下级子文件和目录进行排序。
代码
效果
代码
import os
def get_dir_size(directory):
"""计算给定目录的大小(以字节为单位)"""
total_size = 0
for dirpath, dirnames, filenames in os.walk(directory):
for filename in filenames:
filepath = os.path.join(dirpath, filename)
total_size += os.path.getsize(filepath)
return total_size
def sort_subdirectories_by_size(parent_directory):
"""目标目录下的第一层子目录按大小排序"""
subdirs = [os.path.join(parent_directory, d) for d in os.listdir(parent_directory)
if os.path.isdir(os.path.join(parent_directory, d))]
# 获取每个子目录的大小
sizes = []
for subdir in subdirs:
size = get_dir_size(subdir)
sizes.append((subdir, size))
# 按大小排序
# 从大到小
sizes.sort(key=lambda x: x[1], reverse=True)
return sizes
def sort_subfiles_by_size(parent_directory):
"""目标目录下的第一层文件按大小排序"""
subfiles = [os.path.join(parent_directory, d) for d in os.listdir(parent_directory)
if os.path.isfile(os.path.join(parent_directory, d))]
# 获取每个子目录的大小
sizes = []
for filepath in subfiles:
size = os.path.getsize(filepath)
sizes.append((filepath, size))
# 按大小排序
# 从大到小
sizes.sort(key=lambda x: x[1], reverse=True)
return sizes
# 设置要处理的父目录路径
parent_directory = r'E:\H5_home'
# 获取排序结果
# 第一级目录大小
sorted_subdirs = sort_subdirectories_by_size(parent_directory)
# 第一级文件大小
sorted_subfiles = sort_subfiles_by_size(parent_directory)
# 打印结果
for subdir, size in sorted_subdirs:
print(f"Directory: {subdir}, Size: {size/1024/1024} MB")
for subfile, size in sorted_subfiles:
print(f"File: {subfile}, Size: {size/1024/1024} MB")