获取某文件夹下所有文件、一级子文件夹的大小
作者:互联网
import os
from os.path import getsize,join
input=input('请输入要查询的根目录')
def function(root_dir):
# 初始化函数
def StrOfSize(size):
'''
auth: wangshengke@kedacom.com ;科达柯大侠
递归实现,精确为最大单位值 + 小数点后三位
'''
def strofsize(integer, remainder, level):
if integer >= 1024:
remainder = integer % 1024
integer //= 1024
level += 1
return strofsize(integer, remainder, level)
else:
return integer, remainder, level
units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']
integer, remainder, level = strofsize(size, 0, 0)
if level + 1 > len(units):
level = -1
return ('{}.{:>03d} {}'.format(integer, remainder, units[level]))
def getdirsize(dir):
size = 0
for root, dirs, files in os.walk(dir):
size += sum([getsize(join(root, name)) for name in files])
return size
# 初始化数据
os.chdir(root_dir)
result_list = []
files = os.listdir()
# 开始获取文件、文件夹大小
sizelist_bytes = map(getdirsize, files) # 获取大小
sizelist_result = list(map(StrOfSize, sizelist_bytes)) # 转为其他格式
# 合并字符串
for i in range(len(files)):
result = files[i] + ':' + sizelist_result[i]
result_list.append(result)
print(result_list)
function(input)
用到了另外两位程序员分享的函数,一个是StrOfSize()和getdirsize()虽然第一个还不是特别懂,但就先拿来用上了
标签:files,一级,level,获取,文件夹,result,integer,remainder,size 来源: https://blog.csdn.net/PhariseesLord/article/details/117367037