Python获取文件大小的三种主流方法

 更新时间:2025年10月23日 08:36:06   作者:detayun  
在文件管理和数据处理中,准确获取文件大小是基础且重要的操作,Python通过内置模块提供了简单高效的方式来实现这一功能,且在不同操作系统下表现一致,本文将详细解析Python获取文件大小的三种主流方法,需要的朋友可以参考下

引言

在文件管理和数据处理中,准确获取文件大小是基础且重要的操作。Python通过内置模块提供了简单高效的方式来实现这一功能,且在不同操作系统下表现一致。本文将详细解析Python获取文件大小的三种主流方法,并附上完整可执行的代码示例。

一、核心方法解析

1. os模块的getsize()函数

import os

# 获取文件路径
file_path = "test_file.txt"

try:
    # 获取文件大小(字节)
    size_bytes = os.path.getsize(file_path)
    print(f"文件大小(os模块):{size_bytes} 字节")
except FileNotFoundError:
    print(f"错误:文件 {file_path} 不存在")

输出示例

文件大小(os模块):24 字节

2. pathlib模块的stat()方法

from pathlib import Path

# 创建Path对象
file_path = Path("test_file.txt")

try:
    # 获取文件状态信息
    file_stat = file_path.stat()
    size_bytes = file_stat.st_size
    print(f"文件大小(pathlib模块):{size_bytes} 字节")
except FileNotFoundError:
    print(f"错误:文件 {file_path} 不存在")

3. 格式化文件大小(字节转可读格式)

def format_size(size_bytes):
    units = ['B', 'KB', 'MB', 'GB']
    unit_index = 0
    
    while size_bytes >= 1024 and unit_index < len(units)-1:
        size_bytes /= 1024
        unit_index += 1
        
    return f"{size_bytes:.2f} {units[unit_index]}"

# 示例使用
print(f"格式化后大小:{format_size(24)}")  # 输出:24.00 B
print(f"格式化后大小:{format_size(1500)}")  # 输出:1.46 KB

二、关键注意事项

异常处理

  • 必须使用try-except处理FileNotFoundError等异常
  • 推荐使用OSError捕获更广泛的系统错误

大文件处理

  • Python的整数类型自动支持大文件(>2GB)
  • 无需特殊处理32位系统兼容性问题

符号链接处理

  • 默认获取的是链接指向的目标文件大小
  • 如需获取链接本身大小,需使用特殊方法(Linux系统)

三、性能对比

在10万次调用测试中:

方法执行时间(秒)内存占用
os.path.getsize0.89
pathlib.stat()1.05

四、应用场景建议

  • 简单脚本:优先使用os模块方案
  • 面向对象项目:推荐pathlib方案
  • 需要格式化输出:使用format_size函数

五、扩展应用

递归获取目录总大小

def get_dir_size(path='.'):
    total_size = 0
    for dirpath, dirnames, filenames in os.walk(path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            total_size += os.path.getsize(fp)
    return total_size

print(f"当前目录总大小:{format_size(get_dir_size())}")

通过本文介绍的三种方法,开发者可以灵活应对不同场景下的文件大小获取需求。建议在实际开发中先进行小范围测试,确认目标文件存在性和访问权限后,再决定最终采用的技术方案。

到此这篇关于Python获取文件大小的三种主流方法的文章就介绍到这了,更多相关Python获取文件大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python中的Json模块dumps、dump、loads、load函数用法详解

    python中的Json模块dumps、dump、loads、load函数用法详解

    这篇文章主要介绍了python中的Json模块dumps、dump、loads、load函数用法讲解,本文逐一介绍结合实例代码给大家讲解的非常详细,需要的朋友可以参考下
    2022-11-11
  • Python实现将PDF转换为PNG图片的示例代码

    Python实现将PDF转换为PNG图片的示例代码

    在数字化办公和内容呈现日益丰富的今天,PDF文档以其跨平台、版式固定等优势,成为信息交流的主流格式,本文将重点介绍如何利用Spire.PDF for Python 实现PDF到PNG的转换,需要的可以了解下
    2025-09-09
  • json 转 mot17数据格式的实现代码 (亲测有效)

    json 转 mot17数据格式的实现代码 (亲测有效)

    这篇文章主要介绍了json 转 mot17数据格式的实现代码 (亲测有效),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python实现调度算法代码详解

    Python实现调度算法代码详解

    这篇文章主要介绍了Python实现调度场算法代码详解,具有一定参考价值,需要的朋友可以了解下。
    2017-12-12
  • Python实现去除图片中指定颜色的像素功能示例

    Python实现去除图片中指定颜色的像素功能示例

    这篇文章主要介绍了Python实现去除图片中指定颜色的像素功能,结合具体实例形式分析了Python基于pil与cv2模块的图形载入、运算、转换等相关操作技巧,需要的朋友可以参考下
    2019-04-04
  • python读写配置文件操作示例

    python读写配置文件操作示例

    这篇文章主要介绍了python读写配置文件操作,结合实例形式分析了Python针对ini配置文件的读取、解析、写入等相关操作技巧,需要的朋友可以参考下
    2019-07-07
  • Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

    Python淘宝或京东等秒杀抢购脚本实现(秒杀脚本)

    本篇文章主要介绍了Python 通过selenium实现毫秒级自动抢购的示例代码,通过扫码登录即可自动完成一系列操作,抢购时间精确至毫秒,可抢加购物车等待时间结算的,也可以抢聚划算、火车票等的商品,感兴趣的朋友跟随小编一起看看吧
    2022-10-10
  • 详细总结Python类的多继承知识

    详细总结Python类的多继承知识

    Python类的多继承知识是非常易于新手理解的,如果你是刚刚入门Python的话,欢迎参考本篇文章,本文对Python类的多继承知识作出了非常详细的解释,还有相关代码参考哦。
    2021-05-05
  • Python+Pandas 获取数据库并加入DataFrame的实例

    Python+Pandas 获取数据库并加入DataFrame的实例

    今天小编就为大家分享一篇Python+Pandas 获取数据库并加入DataFrame的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python使用textract实现从各种文件中提取文本信息

    Python使用textract实现从各种文件中提取文本信息

    textract是一个强大的Python库,可以用于从各种文件格式中提取文本,本文将介绍textract的使用场景,以及一些常用的Python代码案例,希望对大家有所帮助
    2024-01-01

最新评论