px普贤教程PuXian
普贤教程 › 包参考

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_tarfiles
tz_gzipdata
tz_gunzipdata
tz_packfiles
tz_unpack_tardata
其余 10 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
o_oct_nn, width
o_zeron
o_hdrname, size
o_u8bb, off
o_parse_octb, off, width
o_str_endb, off, width
tz_unpackdata
tz_list_filesdata
tz_has_filedata, name
tz_get_filedata, 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 位)