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

yizhihongxing

计算一个目录的大小可以使用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 tinydb – 如何获取特定元素名称?

    【问题标题】:Python tinydb – How to get specific element name?Python tinydb – 如何获取特定元素名称? 【发布时间】:2023-04-07 05:11:01 【问题描述】: 这是我的结构的样子: {‘MovieName’: ‘Its-a-Wonderful-Life’, ‘Description…

    Python开发 2023年4月8日
    00
  • python使用matplotlib绘制图片时x轴的刻度处理

    下面是针对“python使用matplotlib绘制图片时x轴的刻度处理”的完整攻略: 标准刻度 Matplotlib默认会为x轴自动添加标准刻度,但是如果数据点过于密集,则刻度标记可能会重叠而难以辨认。您可以使用以下方法修改这些刻度标记: Example 1 import matplotlib.pyplot as plt import numpy as n…

    python 2023年5月18日
    00
  • 浅谈Python的文件类型

    浅谈Python的文件类型 Python中经常用到的文件类型主要有以下几种: .py文件 Python源代码的文件类型,使用文本编辑器进行编写。以.py作为文件后缀名,可通过Python解释器运行。 .txt文件 文本文件,用于存储文本信息,可以使用Python内置的open函数进行文件读写操作。 示例代码: #以可写方式打开文件 f = open(‘exa…

    python 2023年6月5日
    00
  • centos 自动运行python脚本和配置 Python 定时任务

    下面是 CentOS 中自动运行 Python 脚本和配置 Python 定时任务的完整攻略。 一、自动运行 Python 脚本 1.1 配置crontab CentOS5.x 系统自带cron服务,CentOS6.x及以上系统安装时默认安装此服务,具体安装方法为: sudo yum install cronie 安装完成后,启动cron服务 sudo sy…

    python 2023年5月19日
    00
  • Python超详细分步解析随机漫步

    让我来为你详细讲解一下“Python超详细分步解析随机漫步”的完整攻略。 一、背景介绍 首先,随机漫步是一种随机的过程,其中每一步都是在随机方向和随机距离上进行的。它是一种基本的随机过程,可用于模拟从分子热运动到股票市场走势等各种情况。 Python中,通过使用随机数模块,我们可以轻松地生成随机数,从而实现随机漫步。接下来,就让我们看一下如何进行Python…

    python 2023年6月3日
    00
  • Python读取mat文件,并保存为pickle格式的方法

    Python中有多种方法用于读取mat文件,并将其转换为pickle格式。下面是一种实现方法的完整攻略: 1. 安装必要的库 在使用Python读取mat文件之前,必须先安装scipy库和pickle库。可以使用以下命令安装这些库: pip install scipy pip install pickle 2. 读取mat文件并转换为Python对象 可以使…

    python 2023年6月2日
    00
  • python读取excel进行遍历/xlrd模块操作

    下面是关于“python读取excel进行遍历/xlrd模块操作”的完整攻略。 什么是 xlrd ? 在 Python 中,xlrd 是一个用于读取 Excel 文件的第三方库。它能够帮助开发者读取 Excel 文件中的所有单元格,并将数据转换为 Python 可以使用的格式,以便于程序进一步处理。xlrd 适用于读取 .xls 格式的文件,而现在使用较多的…

    python 2023年6月3日
    00
  • python面向对象版学生信息管理系统

    Python面向对象版学生信息管理系统完整攻略 简介 Python面向对象版学生信息管理系统是一款基于Python语言开发的管理系统,能够实现对学生信息的增、删、改和查等基本操作。本攻略将介绍如何使用Python面向对象的方法完成该系统的开发。 实现过程 第一步:设计数据结构 学生类(Student):包含学生的姓名、性别、年龄、学号、成绩等信息; 学生管理…

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