python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python获取文件大小

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

作者: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

二、关键注意事项

异常处理

大文件处理

符号链接处理

三、性能对比

在10万次调用测试中:

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

四、应用场景建议

五、扩展应用

递归获取目录总大小

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获取文件大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文