Python 文件大小的获取方法

使用os.path.getsize()和pathlib.Path.stat()可获取文件大小,前者简单直接,后者更现代;字节可转换为KB、MB等易读单位。

python 文件大小的获取方法

在 Python 中获取文件大小是一个常见的操作,通常用于判断文件是否为空、监控存储使用或进行文件上传限制等。最常用的方法是使用标准库中的 os.path.getsize()pathlib.Path.stat() 方法。

使用 os.path.getsize() 获取文件大小

这是最简单直接的方式,适用于已知文件路径的情况。

该函数接受文件路径作为参数,返回文件的字节大小。如果文件不存在或无法访问,会抛出异常。

返回值单位是字节(bytes)路径可以是相对路径或绝对路径文件必须存在,否则引发 OSError

示例代码:

立即学习“Python免费学习笔记(深入)”;

import os

file_path = 'example.txt'try:size_in_bytes = os.path.getsize(file_path)print(f'文件大小:{size_in_bytes} 字节')except OSError as e:print(f'无法获取文件大小:{e}')

使用 pathlib 模块获取文件大小

Python 3.4+ 推荐使用 pathlib,它提供面向对象的文件系统路径操作方式。

通过调用 Path 对象的 .stat() 方法,可以获得包括文件大小在内的详细信息。

更现代、可读性强支持跨平台路径处理stat().st_size 返回字节大小

示例代码:

立即学习“Python免费学习笔记(深入)”;

from pathlib import Path

file_path = Path('example.txt')if file_path.exists():size_in_bytes = file_path.stat().st_sizeprint(f'文件大小:{size_in_bytes} 字节')else:print('文件不存在')

将字节转换为更易读的单位

原始字节值对用户不够友好,可以通过简单函数转换为 KB、MB 或 GB。

实用转换函数:

def format_file_size(bytes_size):    for unit in ['B', 'KB', 'MB', 'GB']:        if bytes_size < 1024.0:            return f"{bytes_size:.2f} {unit}"        bytes_size /= 1024.0    return f"{bytes_size:.2f} TB"

使用示例

size_in_bytes = 1572864 # 假设这是获取到的大小print(format_file_size(size_in_bytes)) # 输出:1.50 MB

基本上就这些。两种方法都能有效获取文件大小,选择取决于你的代码风格和 Python 版本。pathlib 更推荐用于新项目,os.path 则适合传统脚本。注意始终处理文件不存在的情况,避免程序崩溃。

以上就是Python 文件大小的获取方法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1381334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月14日 22:52:30
下一篇 2025年12月14日 22:52:36

相关推荐

  • Python程序出现错误怎么办_Python程序常见错误类型与解决办法详解

    首先读懂错误信息,Python会提示错误类型和位置。常见错误有:1. 语法错误(SyntaxError),如缺少冒号、括号不匹配、缩进或拼写错误,应检查代码结构并使用高亮编辑器;2. 名称错误(NameError),因变量未定义或拼写错误,需确认变量已赋值且作用域正确;3. 类型错误(TypeErr…

    好文分享 2025年12月14日
    000
  • Python网页版怎样做跨域请求处理_Python网页版跨域问题解决方案与代码实现

    跨域问题指协议、域名或端口不一致时浏览器阻止请求,Flask可通过flask-cors扩展配置CORS,FastAPI使用CORSMiddleware中间件处理,推荐使用框架扩展而非手动添加响应头。 在使用Python网页版(如通过Flask、FastAPI等后端框架提供接口)时,前端页面如果运行在…

    2025年12月14日
    000
  • 虚拟环境与全局环境的区别

    虚拟环境与全局环境的主要区别在于作用范围、依赖管理和项目隔离性。1. 全局环境影响整个系统,所有项目共享同一Python路径下的包;2. 虚拟环境为每个项目提供独立运行环境,包仅在该环境中有效;3. 使用虚拟环境可避免不同项目间的版本冲突,如Django 3.2与4.0无法共存于全局;4. 通过ve…

    2025年12月14日
    000
  • Python 自定义异常类的定义方法

    自定义异常通过继承Exception类实现,可提升错误处理清晰度。例如定义CustomError或含参数的ValidationError,并在try-except中捕获,便于携带上下文信息和分类处理。 在 Python 中,自定义异常类可以让程序更清晰地表达特定错误场景,提升代码可读性和维护性。直接…

    2025年12月14日
    000
  • Python 环境如何快速清理无用依赖

    先使用工具和虚拟环境清理无用依赖。通过pip-autoremove删除残留包,用pipreqs生成真实依赖对比排查,结合虚拟环境隔离项目并定期审计依赖,避免全局污染。 Python 项目用久了,安装又卸载各种包,很容易积累大量无用依赖。这些包不仅占用磁盘空间,还可能引发版本冲突。要快速清理无用依赖,…

    2025年12月14日
    000
  • pip list 与 pip freeze 的区别

    pip list用于查看所有已安装的包,适合日常查阅;pip freeze输出精确依赖版本,格式为包名==版本号,常用于生成requirements.txt以复现环境。 pip list 和 pip freeze 都用于查看当前环境中已安装的 Python 包,但它们的用途和输出格式有明显区别。 1…

    2025年12月14日
    000
  • Python raise from 的用法详解

    使用 raise from 可保留异常链,便于调试;其语法为 raise new_exception from original_exception;适用于封装底层异常、明确因果关系等场景。 在 Python 中,raise from 是一种用于异常链(exception chaining)的语法,…

    2025年12月14日
    000
  • Python如何使用Spacy进行分词

    使用Spacy分词需先安装库和语言模型,再加载模型处理文本。以中文为例:pip install spacy,下载zh_core_web_sm,用nlp(text)获取分词结果,支持词性、停用词等信息提取,英文处理同理,只需替换为en_core_web_sm模型即可完成高质量分词。 使用Spacy进行…

    2025年12月14日
    000
  • Python 环境升级的注意事项

    升级Python需先评估影响,使用python –version查看当前版本,pip freeze导出依赖,确认第三方库兼容性,用虚拟环境测试升级,避免直接修改系统环境,注意语法和API变更如print函数化、字典合并符等,使用2to3工具辅助迁移,升级后更新包、CI/CD配置及团队开发…

    2025年12月14日
    000
  • Python 多进程文件读写的常见问题

    多进程文件读写需避免数据混乱和性能问题。1. 多进程写入易导致数据错乱,可用文件锁、独立临时文件合并或专用写进程队列解决;2. 父子进程文件句柄冲突,应延迟打开文件并在子进程独立操作;3. 频繁I/O影响性能,建议批量处理、mmap或tmpfs优化;4. fcntl跨平台不兼容,可改用portalo…

    2025年12月14日
    000
  • 如何在 VS Code 中切换虚拟环境

    首先确认虚拟环境已创建,使用venv、conda或virtualenv在项目目录生成Python环境;接着在VS Code中通过Ctrl+Shift+P打开命令面板,选择“Python: Select Interpreter”并指定虚拟环境中的Python可执行文件路径;然后验证环境是否生效,通过导…

    2025年12月14日
    000
  • threading在python中创建线程的两种方式

    继承Thread类适合封装复杂逻辑,重写run()方法实现任务;2. 传入target函数更简洁,适用于简单任务。根据需求选择:简单任务用target方式,复杂状态管理用继承方式。 在Python中使用threading模块创建线程主要有两种方式:一种是通过继承Thread类并重写其run()方法,…

    2025年12月14日
    000
  • Python 环境的自动化 CI/CD 集成方法

    答案:Python项目CI/CD通过自动化测试、依赖管理与可重复部署提升效率。选用GitHub Actions等平台触发流程,标准化项目结构并锁定依赖,运行测试与代码检查确保质量,测试通过后按分支策略自动发布包或部署应用,结合Docker与密钥管理实现安全交付。 在现代软件开发中,Python 项目…

    2025年12月14日
    000
  • python vim中有哪些对象

    Vim通过插件支持Python文本对象,如函数(af/if)、类(ac/ic)、引号(iq/aq)、括号(ib/ab)和缩进块,结合d、c、y等命令实现高效编辑,需安装python-mode、targets.vim或vim-surround等插件增强功能。 在 Python 和 Vim 的上下文中,…

    2025年12月14日
    000
  • Python 如何在函数中传递异常

    Python中异常通过调用栈自动向上传播,若函数未使用try-except捕获,则异常会直接传递给调用者;可通过raise重新抛出已捕获异常以执行清理操作;使用raise new_exception from original_exception可创建异常链,保留原始错误信息;极少数情况下可将异常作…

    2025年12月14日
    000
  • Python 文件操作从入门到精通学习路线

    掌握Python文件操作需循序渐进:1. 学会用open()和with读写文本;2. 注意编码与跨平台兼容性;3. 使用os和pathlib批量处理文件;4. 掌握JSON、CSV结构化数据读写;5. 加入异常处理与安全写入机制;6. 优化大文件处理与二进制操作;7. 通过日志分析、配置管理等实战项…

    2025年12月14日
    000
  • conda环境中的Python变量怎么配置_conda环境下Python环境变量配置方法

    创建并激活 Conda 环境:使用 conda create 和 conda activate 命令创建并进入环境,终端显示 (myenv) 表示成功。2. 检查 Python 路径:通过 which python 或 where python 验证当前解释器路径指向 Conda 环境目录。3. 添…

    2025年12月14日
    000
  • Python 环境如何与 Node.js 并存

    Python 和 Node.js 可在同一台机器上共存,因二者运行时和包管理独立。1. 分别从官方渠道安装 Python 和 Node.js,确保 PATH 正确;2. 使用 pyenv 和 nvm 管理多版本切换,互不干扰;3. 通过 venv 和 node_modules 隔离项目依赖,避免冲突…

    2025年12月14日
    000
  • Python 文件增量更新的实现思路

    答案是Python通过只处理变化部分实现高效增量更新。先用哈希分块或difflib对比新旧文件差异,生成变更集;再仅传输修改的块或行,减少I/O与带宽消耗,适用于大文件同步和文本补丁场景。 在处理大文件或网络传输场景中,直接全量更新效率低、资源消耗大。Python 实现文件增量更新的核心思路是:只识…

    2025年12月14日
    000
  • Python 使用 pandas 保存 Excel 文件

    使用pandas保存Excel文件需调用to_excel方法,基本语法为df.to_excel(“output.xlsx”, index=False)以避免保存行索引。若需保存多个DataFrame到不同工作表,应使用pd.ExcelWriter配合上下文管理器,分别指定sh…

    2025年12月14日
    000

发表回复

登录后才能评论
关注微信