温州网站关键词网站商务通弹出窗口图片更换设置
2026/2/14 0:47:40 网站建设 项目流程
温州网站关键词,网站商务通弹出窗口图片更换设置,成交型网站建设公司,网站建设与维护理解Python 实用技#xff1a;解压 ZIP 文件的三种姿势#xff08;从一行命令到进阶脚本#xff09; 在日常开发#xff0c;尤其是 AI 模型部署#xff08;如 YOLO、LLM 权重部署#xff09;中#xff0c;我们经常需要在 Linux 服务器或 Docker 容器中处理压缩包。有时候容器…Python 实用技解压 ZIP 文件的三种姿势从一行命令到进阶脚本在日常开发尤其是 AI 模型部署如 YOLO、LLM 权重部署中我们经常需要在 Linux 服务器或 Docker 容器中处理压缩包。有时候容器里甚至没有安装unzip命令这时候 Python 就成了我们的救命稻草。本文总结了使用 Python 解压 ZIP 文件的三种常用方法涵盖了从最简单的命令行操作到处理中文乱码的进阶技巧。方法一命令行“一行流” (最快、无需写脚本)这是最简单、最快的方法。Python 标准库自带zipfile模块可以直接在终端调用无需编写任何.py文件。非常适合在Docker 容器或临时环境中使用。语法python -m zipfile -e压缩包名解压目标目录示例将model_weights.zip解压到当前目录.python -m zipfile -e model_weights.zip.原理-m参数将库模块当作脚本运行-e代表 extract解压。方法二标准库zipfile(基础脚本)如果你需要在 Python 代码中集成解压功能zipfile是最标准的选择。建议使用with语句上下文管理器这样可以确保文件在使用后自动关闭即使发生错误也不会占用文件句柄。importzipfileimportosdefunzip_file(zip_src,dst_dir):# 如果目标目录不存在则创建ifnotos.path.exists(dst_dir):os.makedirs(dst_dir)print(f开始解压:{zip_src}...)try:withzipfile.ZipFile(zip_src,r)aszfile:# extractall 会解压所有文件zfile.extractall(pathdst_dir)print(f✅ 解压完成文件已保存至:{dst_dir})exceptzipfile.BadZipFile:print(❌ 错误: 文件已损坏或不是有效的 ZIP 文件)exceptExceptionase:print(f❌ 发生未知错误:{e})# 调用示例if__name____main__:unzip_file(merged_qwen3vl_model.zip,./model_output)方法三进阶操作 (大文件进度条 中文乱码修复)作为 AI 开发者我们解压的模型往往高达几 GB 甚至几十 GB。如果没有进度条对着黑屏傻等是非常焦虑的。此外Windows 下打包的中文文件名在 Linux 下解压常会出现乱码。下面的脚本解决了这两个痛点1. 依赖安装我们需要tqdm来显示进度条做 AI 的同学应该都有这个库pipinstalltqdm2. 完整代码importzipfileimportosfromtqdmimporttqdmdefunzip_with_progress(zip_src,dst_dir):ifnotos.path.exists(dst_dir):os.makedirs(dst_dir)withzipfile.ZipFile(zip_src,r)aszfile:# 获取所有文件列表memberszfile.infolist()# 初始化进度条total 是文件总大小total_sizesum(file.file_sizeforfileinmembers)print(f正在解压{zip_src}到{dst_dir}...)withtqdm(totaltotal_size,unitB,unit_scaleTrue,unit_divisor1024)aspbar:formemberinmembers:# --- 中文乱码修复核心代码 (可选) ---# Windows 压缩包通常用 CP437 编码文件名Linux 需要转回 GBK 或 UTF-8try:member.filenamemember.filename.encode(cp437).decode(gbk)except:# 如果转换失败保持原样说明可能是 UTF-8pass# --------------------------------# 解压单个文件zfile.extract(member,dst_dir)# 更新进度条pbar.update(member.file_size)if__name____main__:# 示例解压一个大模型权重unzip_with_progress(large_model_weights.zip,./models)总结场景推荐方法核心命令/库临时操作/Docker环境方法一python -m zipfile -e file.zip .通用脚本开发方法二import zipfile大文件/体验优化方法三zipfiletqdm希望这篇笔记能帮你解决 Linux 环境下的解压难题如果觉得有用欢迎点赞收藏。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询