压缩技术实战教程
——————————————
本教程覆盖:
- 压缩基础知识
- Windows 压缩工具(ZIP / WinRAR / 7-Zip)
- WinRAR 所有常用选项完整解释(含分卷、固实、加密)
- Linux 压缩与常用命令
- Python 中的压缩
- 如何选择压缩格式(决策指南)
- 工程实践与踩坑总结
本教程偏向“使用”,但会穿插必要的原理,让你知道为什么。
第一章:压缩技术的基本概念
1.1 压缩是什么
压缩 = 减少文件体积,常见用途:
- 节省存储空间
- 方便传输
- 减少网络带宽
- 合并多个文件成一个包
1.2 两种压缩方式
无损压缩(Lossless)
压缩后解压能完全恢复原文件。
ZIP、RAR、7z、PNG、Gzip 都属于这一类。
有损压缩(Lossy)
压缩时会丢一部分信息,如 JPEG、MP3、MP4、WebP。
本教程主要讲 无损压缩。
第二章:Windows 压缩工具
在 Windows 上,最常用压缩工具有:
- ZIP(系统自带)
- WinRAR(最常用)
- 7-Zip(开源、压缩率高)
这里我们主要讲实战最强的:WinRAR 与 7-Zip。
2.1 ZIP(系统自带)
优点:
- 无需额外软件
- 通用兼容性最强(给别人传最好用)
缺点:
- 压缩率一般
- 加密弱
使用方法:
右键 → 发送到 → 压缩(zipped)文件夹。
适合:办公文档、代码、随手发别人。
2.2 7-Zip(7z 格式)
特点:
- 压缩率最高
- 开源免费
- 支持 AES-256 加密
- 支持分卷
但界面偏简单。
适合:工程压缩、代码包、长期归档。
2.3 WinRAR(最全、最专业、实用性最高)
WinRAR 是 Windows 上压缩场景的绝对标准。
适合:分卷压缩、大文件管理、加密压缩、安全压缩。
下面给你完整解释 WinRAR 的压缩界面(你发的截图)。
第三章:WinRAR 压缩界面完整教程(逐项解释)
该部分为全教程核心。
3.1 基础设置
1)压缩文件名(A)
最终压缩包的名称,比如:
backup.rar
project.zip
cs.part1.rar
3.2 压缩文件格式(RAR / RAR4 / ZIP)
RAR(推荐)
压缩率高
加密强(AES-256)
支持分卷
稳定性好
RAR4
旧算法,与老电脑兼容用的。
ZIP
兼容性最好,但压缩率低。
发给别人用 ZIP 更稳。
3.3 压缩方式(重点)
决定压缩率 vs 速度:
| 选项 | 说明 |
|---|---|
| 存储 | 不压缩,只打包 |
| 速度最快 | 最快,但压缩率最差 |
| 最快 | 比较快 |
| 普通 | 默认平衡 |
| 好 | 压缩率更好 |
| 最好(推荐) | 压得最小,但速度最慢 |
日常建议:
- 空间优先 → 最好
- 速度优先 → 普通
- 只打包 → 存储
3.4 字典大小(D)
RAR 算法用的内部缓冲大小:
- 越大 → 压得越小
- 但内存占用越高
默认 32MB 一般够了。
如果压缩超大文件,可以设为 64MB–256MB。
3.5 分卷压缩(切分为分卷)
用途:
把一个大文件拆成多个小压缩包。例如发给别人、传网盘。
你填:500M压缩包将变成:
backup.part1.rar
backup.part2.rar
backup.part3.rar
...
常见设置:
- 100M
- 500M
- 1G
特别适合 U 盘 FAT32(最大文件 4GB 限制)。
3.6 压缩选项(右侧复选框)
(1)压缩后删除原文件
压缩成功后把源文件删掉。
风险大,不建议勾选。
(2)创建自解压格式压缩文件(.exe)
生成 .exe 文件,不需要 WinRAR 就能解压。
适合发给不会用压缩软件的人。
(3)创建固实压缩(Solid Archive)
推荐用于大量小文件。
特点:
- 压得更小
- 解压需要扫描更长时间
- 不能快速提取单个文件(需解整个固实块)
建议:
- 小文件多 → 勾
- 大文件 → 不勾也行
(4)添加恢复记录
加入“纠错数据”。压缩包损坏时可修复。
用途:
- 长期保存
- 易损坏文件(如硬盘坏道)
(5)测试压缩文件
压缩完自动检查是否完整。
用于重要文件备份。
(6)锁定压缩文件
压缩包变成只读,不可再修改。
适合存档。
3.7 设置密码(P)——非常重要
WinRAR 的密码加密使用 AES-256,非常安全。
推荐勾选:
✔ 加密文件名
作用:
别人根本看不到里面有哪些文件:
显示为:
[需要密码]
适合敏感信息、机密文件。
第四章:7-Zip 实战(高压缩率)
7z 是压缩效率最高的格式。
常用命令
压缩:
7z a archive.7z folder/
最高压缩:
7z a -t7z -mx=9 archive.7z folder/
分卷:
7z a -v500m archive.7z folder/
加密:
7z a -pPassword -mhe=on archive.7z folder/
-mhe=on = 加密文件名。
第五章:Linux 主流压缩方式
Linux 打包通常是:
tar + 压缩算法
tar.gz(常用)
tar -czvf file.tar.gz folder/
tar -xzvf file.tar.gz
tar.xz(压得更小)
tar -cJvf file.tar.xz folder/
tar -xJvf file.tar.xz
Zstd(现代最快)
tar --zstd -cvf file.tar.zst folder/
tar --zstd -xvf file.tar.zst
也可单独压:
zstd bigfile
unzstd bigfile.zst
第六章:Python 压缩实战
Python 内置 zip/tar 支持。
ZIP:
import zipfile
with zipfile.ZipFile("data.zip", "w", zipfile.ZIP_DEFLATED) as z:
z.write("test.txt")
TAR:
import tarfile
with tarfile.open("data.tar.gz", "w:gz") as tar:
tar.add("folder/")
Zstd(高性能)
import zstandard as zstd
c = zstd.ZstdCompressor(level=10)
with open("a", "rb") as fin, open("a.zst", "wb") as fout:
fout.write(c.compress(fin.read()))
第七章:如何选择压缩格式(决策)
| 需求 | 推荐格式 |
|---|---|
| 发给别人 | ZIP |
| 压得最小 | 7z / RAR “最好” |
| 压得最快 | Zstd |
| 分卷、多文件 | RAR |
| 加密 | 7z / RAR AES-256 |
| Linux 系统 | tar.gz / tar.xz / tar.zst |
| 大量小文件 | 7z + 固实压缩 |
第八章:工程实践与注意事项
- 不要压缩已经高度压缩的文件(MP4/JPG/ZIP 本身)
- 固实压缩适合小文件,不适合大文件
- 分卷适合网盘上传、U 盘传输
- 重要文件一定要加密(AES-256)
- 存档用“添加恢复记录”
- 压缩大文件更适合 SSD
- Linux 大文件建议用 Zstd,极快且压缩率高