python - 如何使用 gzip 有效地将许多小文件压缩成许多小的 .tar.gz 文件?
问题描述
我有数百万个 *.csv 小文件,我想用 gzip 压缩它们。
用gzip循环压缩它们是可以的,但是效率不够。
我想知道是否有办法有效地做到这一点?通过多处理或其他方式?
解决方案
根据Charles Duffyzstd
的评论使用:
cd csvdir # go to where the million .csv files are
zstd --train `find . -name '*.csv' | shuf -n 100`
mv dictionary csv.dict
zstd -T$(nproc) -9 -D csv.dict -o csvfiles.zstd *.csv
这会从一百个.csv文件的随机样本中创建一个字典,然后使用所有 CPU 的内核将这百万个文件有效地压缩为csvfiles.zstd。
推荐阅读
- html - 如何使用基于 JSON 的下拉菜单来过滤 xml 源?
- google-sheets - IMPORTXML 在 NCBI 网站的特定页面上返回 #N/A - 受刮擦保护?
- reactjs - React 中的状态,如何保存原始的`?
- typescript - 扩展日期类型表示未找到函数
- carrierwave - Gem Carrierwave 不允许上传应用程序/八位字节流文件
- javascript - 如何在打字稿上定义自定义属性并将其与匿名对象一起使用?
- vb.net - vb.net datagridview中的双数据
- python - 来自 DataFrame 的两列的条件提取和 cat
- html - 省略号加宽度动画产生颤抖
- wordpress - 将自定义帖子添加到自定义帖子类型页面