普贤教程 › 包参考
targz 包
tar.gz 联合流(uStar 子集)
对照 Go archive/tar + compress/gzip / Python tarfile 心智:
| 项 | 值 |
|---|---|
| 包名 | targz |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | targz.px |
| 分类 | 数据格式与编解码 |
| 文件数 / 行数 | 1 / 183 |
安装与引入
bash
pxpkg init # 首次 pxpkg add targz@0.2.0 pxpkg install
px
import targz所属分类教程:数据格式与编解码
公开接口
| 函数 | 参数 |
|---|---|
tz_tar | files |
tz_gzip | data |
tz_gunzip | data |
tz_pack | files |
tz_unpack_tar | data |
其余 10 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
o_oct_n | n, width |
o_zero | n |
o_hdr | name, size |
o_u8b | b, off |
o_parse_oct | b, off, width |
o_str_end | b, off, width |
tz_unpack | data |
tz_list_files | data |
tz_has_file | data, name |
tz_get_file | data, name |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/targz —— tar.gz 联合流(uStar 子集) ------------------------------------------------------------ 对照 Go archive/tar + compress/gzip / Python tarfile 心智: tz_tar(files_dict) → Ok(bytes) # dict{路径→内容(str/bytes)} → uStar tar 字节 tz_gzip(data) → Ok(bytes) # gzip_compress 封装 tz_gunzip(data) → Ok(bytes) # gzip_uncompress 封装 tz_pack(files_dict) → Ok(bytes) # tar → gzip 一步 tz_unpack_tar(data) → Ok({路径→内容(str)}) # 解析 uStar(含 512 双零尾块) 说明: - 头格式 uStar:100 名 + 8 模式 + 8 uid + 8 gid + 12 八进制大小 + 12 mtime + 8 校验和 + 1 类型(0=文件) + 100 link + 6 magic("ustar\0") + 2 ver + 32 uname + 32 gname + 8 devmajor + 8 devminor + 155 prefix;数据按 512 补齐,尾二块零。 - 校验和 = 头部字节和(chksum 按 8 空格占位),写 6 位八进制 + NUL + 空格。 - 与 Python tarfile 双向互通(测试对拍)。 ============================================================ int → 8 进制零填充字符串(width 位)