我正在使用python的tarfile库来创建一个gzip压缩文件。
tar文件需要具有绝对路径名,原因是我无法控制。 (我知道这不是正常做法。)
当我打电话
tarobject.add("/foo/xx1", "/bar/xx1")
arcname参数“/ bar / xx1”通过os.path.normpath()运行并转换为“bar / xx1”
如何避免这种情况并按照我的要求结束“/ bar / xx1”?
我读过我可以在某处替换normpath,但我对Python很新,我不知道如何做到这一点或者更广泛的含义是什么。
修改
在查看at this question后,我仔细查看了tarinfo对象,这似乎有效:
my_tarinfo = tarobject.gettarinfo("/foo/xx1")
my_tarinfo.name = "/bar/xx1"
tarobject.addfile(my_tarinfo, file("/foo/xx1"))
答案 0 :(得分:0)
你真的做了很奇怪的事情。您需要将/usr/lib64/python/tarfile.py
复制到PYTHONPATH中的目录。然后你可以修改这个文件。但是您需要将自己的tarfile模块与您的代码捆绑在一起。