You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python中解压zstd文件?Windows或Python下zstd解压方法

如何在Python中及Windows系统下解压Zstandard(zstd)文件

作为经常和zstd格式打交道的开发者,我整理了几个靠谱的方案,不管是在Python脚本里自动化处理,还是Windows本地手动解压,都能搞定:

一、Python环境下的解压方法

zstd官方有对应的Python绑定库,用起来很顺手,先从安装开始:

1. 安装依赖库

打开终端(或命令提示符),执行以下命令安装zstandard库:
pip install zstandard

2. 解压单个.zst文件

如果只是单个压缩的.zst文件(比如压缩的文本、JSON等),用下面的代码就能快速解压:

import zstandard as zstd

def decompress_zstd(input_file, output_file):
    # 以二进制模式打开输入输出文件
    with open(input_file, 'rb') as f_in, open(output_file, 'wb') as f_out:
        # 创建解压上下文
        decompressor = zstd.ZstdDecompressor()
        # 流式处理,适合大文件,不会占用过多内存
        decompressor.copy_stream(f_in, f_out)

# 示例:把example.zst解压成example.txt
decompress_zstd("example.zst", "example.txt")

这个方法采用流式处理,哪怕是几个G的大文件,也能轻松应对,不会爆内存。

3. 处理.tar.zst归档文件

很多时候zstd会和tar一起用,生成.tar.zst的归档包(类似.tar.gz),这时候需要结合tarfile模块来处理:

import tarfile
import zstandard as zstd

def extract_tar_zst(archive_path, target_dir):
    with open(archive_path, 'rb') as f:
        decompressor = zstd.ZstdDecompressor()
        # 把zstd解压流传给tarfile
        with decompressor.stream_reader(f) as stream:
            with tarfile.open(fileobj=stream, mode='r|*') as tar:
                # 提取所有文件到目标目录
                tar.extractall(path=target_dir)

# 示例:把archive.tar.zst解压到./extracted文件夹
extract_tar_zst("archive.tar.zst", "./extracted")

这段代码会自动识别归档里的文件结构,完整提取到指定目录。

二、Windows系统下的手动解压方案

如果你不想写代码,Windows下也有很多简单的工具:

1. 官方zstd命令行工具

  • 首先下载Windows版本的zstd二进制包(去官方发布页找对应版本),解压后把zstd.exe所在的文件夹添加到系统环境变量(这样就能在任意命令行窗口调用)。
  • 常用解压命令:
    • 基础解压:zstd -d your_file.zst(解压后原文件会被删除)
    • 保留原文件:zstd -d -k your_file.zst
    • 解压.tar.zst:用上面的命令得到.tar文件后,再用tar工具或7-Zip打开即可。

2. 7-Zip GUI工具

新版的7-Zip已经原生支持zstd格式了,操作超简单:

  • 安装最新版7-Zip后,右键点击.zst或.tar.zst文件,选择「7-Zip」→「提取到当前文件夹」或者「提取到[文件名]\」,就能一键解压,和处理普通压缩包完全一样。

3. 其他GUI工具

像Bandizip、WinRAR(最新版本)也都支持zstd格式,右键菜单就能操作,适合习惯用图形界面的用户。


内容的提问来源于stack exchange,提问作者Jonathan Lam

火山引擎 最新活动