繁体   English   中英

使用python tarfile add而不将normpath应用于arcname

[英]Use python tarfile add without normpath being applied to arcname

我正在使用python的tarfile库来创建gzip压缩的tar文件。

由于我无法控制,tar文件需要具有绝对路径名。 (我知道这不是正常的做法。)

当我打电话

tarobject.add("/foo/xx1", "/bar/xx1")

arcname参数“ / bar / xx1”通过os.path.normpath()运行,并转换为“ bar / xx1”

如何避免这种情况,并根据需要以“ / bar / xx1”结尾?

我已经读到可以在某个地方替换normpath,但是我对Python还是很陌生,我不确定如何做到这一点或会带来更广泛的影响。

编辑

看完这个问题后,我仔细看了一下tarinfo对象,这似乎可行:

my_tarinfo = tarobject.gettarinfo("/foo/xx1")
my_tarinfo.name = "/bar/xx1"
tarobject.addfile(my_tarinfo, file("/foo/xx1"))    

你真的很奇怪 您需要将/usr/lib64/python/tarfile.py复制到PYTHONPATH中的目录中。 然后,您可以修改此文件。 但是您需要将自己的tarfile模块与代码捆绑在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM