python内置库tarfile打包路径中文转问号解决

python 版本:3.8.6

现象

在解压后,发现文件名含有中文的文件消失了。并且多出了一个 @PaxHeader 文件。
在压缩包中可以看到所有中文被问号替代

问题

原因在于:
python3.8 之后默认 format 由 GNU_FORMAT 变为 PAX_FORMAT

解决

使用 tarfile 时候指定 format 参数为 GNU_FORMAT 就行了

# -*- coding: utf-8 -*-

import tarfile

with tarfile.open("xxx.tar", "w", format=tarfile.GNU_FORMAT) as tar:
    tar.add("xxxxx", arcname="xxxx")
本文著作权归作者 [ zealoner ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。

发表留言