.nsz 是 Nintendo Switch 压缩 NSP 包,由社区工具 * 定义,本质是对 (NSP)* 的压缩格式。
该格式通常需要通过 NSZ 项目的 Python 实现进行解压。
下面是较直接的技术流程。
1. 安装 NSZ Python 工具
官方实现就是一个 Python 包。
pip install nsz依赖:
- Python ≥ 3.8
- zstandard
安装后会提供 nsz 命令行工具。
2. 解压 .nsz → .nsp
nsz -D game.nsz参数说明:
| 参数 | 含义 |
|---|---|
-D | Decompress |
game.nsz | 输入文件 |
输出:
game.nsp3. 在 Python 代码中调用
如果你需要 用 Python 脚本自动解压(例如批量处理),可以直接调用模块:
import subprocess
def decompress_nsz(file):
subprocess.run(["nsz", "-D", file], check=True)
decompress_nsz("game.nsz")批量示例:
import subprocess
import glob
for file in glob.glob("*.nsz"):
subprocess.run(["nsz", "-D", file])4. 纯 Python API(不调用 subprocess)
NSZ 内部也提供模块接口:
from nsz.Fs import factory
from nsz.NszDecompressor import decompress
infile = "game.nsz"
outfile = "game.nsp"
container = factory(infile)
decompress(container, outfile)不过该 API 版本兼容性较差,实际生产环境通常直接调用 CLI。
5. 常见错误
缺少 zstandard
ModuleNotFoundError: No module named 'zstandard'解决:
pip install zstandard文件验证失败
某些 .nsz 需要:
nsz --verify game.nsz6. 批量自动解压脚本(推荐)
import subprocess
import pathlib
for f in pathlib.Path(".").glob("*.nsz"):
subprocess.run(["nsz", "-D", str(f)])✔ 总结
| 方法 | 推荐度 | |
|---|---|---|
Python 调 CLI (subprocess) | ⭐⭐⭐⭐ | |
| NSZ Python API | ⭐⭐ | |
| 手写解析 NSZ | ❌ 不现实 |
评论区
还没有人评论