详解Python 如何计算一个目录的大小

计算一个目录的大小可以使用Python os模块中的os.path库函数和os.walk函数。

具体步骤如下:

  1. 引入模块和初始化变量
import os

# 初始大小为0
size = 0
  1. 使用os.walk遍历目录下的文件,计算文件大小
for root, dirs, files in os.walk('path/to/dir'):
    for file in files:
        file_path = os.path.join(root, file)
        # 只计算文件大小,排除目录
        if os.path.isfile(file_path):
            size += os.path.getsize(file_path)
  1. 格式化输出结果
# 转换结果为可读性更好的单位
if size < 1024:
    size_str = '{}B'.format(size)
elif size < 1024 * 1024:
    size_str = '{:.2f}KB'.format(size / 1024)
elif size < 1024 * 1024 * 1024:
    size_str = '{:.2f}MB'.format(size / 1024 / 1024)
else:
    size_str = '{:.2f}GB'.format(size / 1024 / 1024 / 1024)

print('目录{}的大小为{}'.format('path/to/dir', size_str))

示例1:计算当前目录下的大小

import os

# 初始大小为0
size = 0

# 遍历当前目录
for root, dirs, files in os.walk('.'):
    for file in files:
        file_path = os.path.join(root, file)
        # 只计算文件大小,排除目录
        if os.path.isfile(file_path):
            size += os.path.getsize(file_path)

# 转换结果为可读性更好的单位
if size < 1024:
    size_str = '{}B'.format(size)
elif size < 1024 * 1024:
    size_str = '{:.2f}KB'.format(size / 1024)
elif size < 1024 * 1024 * 1024:
    size_str = '{:.2f}MB'.format(size / 1024 / 1024)
else:
    size_str = '{:.2f}GB'.format(size / 1024 / 1024 / 1024)

print('当前目录的大小为{}'.format(size_str))

示例2:计算指定目录下的大小

import os

# 初始大小为0
size = 0

# 遍历指定目录
for root, dirs, files in os.walk('/home/user'):
    for file in files:
        file_path = os.path.join(root, file)
        # 只计算文件大小,排除目录
        if os.path.isfile(file_path):
            size += os.path.getsize(file_path)

# 转换结果为可读性更好的单位
if size < 1024:
    size_str = '{}B'.format(size)
elif size < 1024 * 1024:
    size_str = '{:.2f}KB'.format(size / 1024)
elif size < 1024 * 1024 * 1024:
    size_str = '{:.2f}MB'.format(size / 1024 / 1024)
else:
    size_str = '{:.2f}GB'.format(size / 1024 / 1024 / 1024)

print('目录/home/user的大小为{}'.format(size_str))

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python 如何计算一个目录的大小 - Python技术站

(0)
上一篇 2023年3月25日
下一篇 2023年3月25日

相关文章

  • 使用python实现抓取中国银行外汇牌价首页数据实现

    本攻略将介绍如何使用Python爬取中国银行外汇牌价首页数据。我们将使用requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML页面,以及使用pandas库来处理数据。 实现Python爬取中国银行外汇牌价首页数据 以下是一个示例代码,用于实现Python爬取中国银行外汇牌价首页数据: import requests from b…

    python 2023年5月15日
    00
  • python在开放式办公室中自动填写导入文本

    【问题标题】:python to auto fill in import text in open officepython在开放式办公室中自动填写导入文本 【发布时间】:2023-04-03 23:55:01 【问题描述】: (Apache Open Office 中的字符集、分隔符选项和字段) 我拥有的原始文件是一个 csv 文件。我想使用 python…

    Python开发 2023年4月8日
    00
  • Python常见反爬虫机制解决方案

    Python常见反爬虫机制解决方案 前言 随着爬虫技术的不断发展,网站也开始有意识的采取反爬虫机制来限制爬虫对网站的访问。Python作为一种常用的爬虫语言,需要我们找到一些解决方案来应对这些反爬虫机制。 验证码识别 验证码是一种常见的反爬虫机制,它可以有效防止机器人恶意爬取网站数据。验证码识别技术可以用来破解验证码,从而突破这种反爬虫机制,使爬虫可以访问这…

    python 2023年5月14日
    00
  • python实现停车管理系统

    Python实现停车管理系统 简介 停车管理系统是一种常用的车辆管理系统,可以对车辆进行入库、出库、计费等操作,被广泛应用于各类停车场、停车库等场所。Python是一种功能强大的编程语言,它可以通过编写简单明了的程序来实现停车管理系统。 步骤 1. 确定需求 在开始编写停车管理系统之前,我们需要确定需要实现哪些功能,例如: 车辆入库操作 车辆出库操作 车辆计…

    python 2023年5月30日
    00
  • python中精确输出JSON浮点数的方法

    在Python中,使用json模块将Python对象转换为JSON字符串时,浮点数默认会使用科学计数法表示,并且只保留小数点后15位。如果需要精确输出JSON浮点数,可以使用decimal模块来处理浮点数,并使用json.dumps()函数的cls参数来指定一个自定义的编码器类。以下是“Python中精确输出JSON浮点数的方法”的完整攻略: 导入模块 首先…

    python 2023年5月14日
    00
  • python买卖股票的最佳时机(基于贪心/蛮力算法)

    以下是关于“Python买卖股票的最佳时机”的完整攻略: 简介 买卖股票的最佳时机是一种常见的算法问题,它涉及到如何在股票市场中获得最大的利润。在本教程中,我们将介绍如何使用Python实现买卖股票的最佳时机,并提供一些示例说明。 Python买卖股票的最佳时机实现 Python中有多种算法可供选择,包括贪心算法、蛮力算法等。以下是使用贪心算法实现买卖股票的…

    python 2023年5月14日
    00
  • 如何利用Python动态模拟太阳系运转

    如何利用Python动态模拟太阳系运转: 1. 确定模拟目标 首先,我们需要明确自己想要模拟什么。太阳系是由太阳和若干行星、卫星、小行星带等物质组成的,我们可以选择模拟太阳系中所有行星/卫星的运动轨迹等相关特性。 2. 确定模拟工具 Python中有几个用于模拟物理系统的库,比如PyDy、PyMKS等,但是最为常用的可能还是vpython这个库。因为vpyt…

    python 2023年6月3日
    00
  • python 字符串只保留汉字的方法

    如果您想Python字符串只保留汉字,可按照以下步骤进行操作: 导入re模块 在Python中,re是用于正则表达式操作的标准库之一,它在字符串中搜索和替换文字非常方便。 import re 使用正则表达式过滤字符串中的非汉字字符 正则表达式中的 [\u4e00-\u9fa5] 表示匹配汉字范围内的字符,其他非汉字字符使用正则表达式 [^\u4e00-\u9…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部