IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python统计指定目录的大小 -> 正文阅读

[Python知识库]Python统计指定目录的大小

说明

使用os模块操作文件以及目录路径,定义一个统计指定文件夹大小的函数,(返回文件夹大小【非占用空间】)单位:字节(B)

提示:

os.path.getsize(file) #获取文件大小

注意:

直接获取文件夹的大小,会返回一个1024B的倍数【我们需要获取文件夹的实际大小,1字节 =1B】
测试一个文件夹的大小,而不是文件

程序代码

import os

# 定义统计指定文目录大小的函数
# 可使用 os.stat().st_size 替换 os.path.getsize()
def dir_size(dir):
    size = 0
    # 指定目录是否为文件
    if os.path.isfile(dir):
        size += os.path.getsize(dir)
    # 指定目录是否为文件夹
    if os.path.isdir(dir):
        dir_lst = os.listdir(dir)
        # 遍历目录
        for i in dir_lst:
            file = os.path.join(dir, i)
            if os.path.isfile(file):
                size += os.path.getsize(file)
            if os.path.isdir(file):
                size += dir_size(file)
    return size

# 格式化文件大小的函数
def format_size(size):
    formatbyte = [(1024 ** 3, "GB"), (1024 ** 2, "MB"), (1024, "KB")]
    for (scale, lable) in formatbyte:
        if size >= scale:
            byte = "%.2f" % (size / scale)
            byte[:-3] if byte.endswith('.00') else byte
            return "文件大小: {1} {2}({0:,} 字节)".format(size, str(byte), lable)
        elif size == 0:
            return "文件大小: 0 字节"
        else:
            pass
    return "文件大小: {0} 字节({0:,} 字节)".format(size)

# 输入输出
if __name__ == '__main__':
    while True:
        print("===================")
        print(" 1、统计指定目录大小")
        print(" 0、退出程序")
        print("===================")
        flag = int(input("请输入操作编号:"))
        if flag == 1:
            dirname = input("请输入指定文件目录: ")
            if os.path.exists(dirname):
                print(format_size(dir_size(dirname)))
            else:
                print("目录不存在,请检查后重新输入!!")
        elif flag == 0:
            exit(1)
        else:
            print("请输入正确的操作编号!!")

输出结果
在这里插入图片描述
对照
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:30:44  更:2021-08-24 15:32:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 13:20:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计