3
我想追加一个文件到tar文件。例如,test.tar.gz
中的文件是a.png, b.png, c.png
。我有一个名为a.png
的新PNG文件,我想追加到a.png
到test.tar.gz
,并覆盖中的旧文件a.png
。我的代码:如何将文件追加到tar文件使用python tarfile模块?
import tarfile
a = tarfile.open('test.tar.gz', 'w:gz')
a.add('a.png')
a.close()
然后,所有的文件test.tar.gz
disappeard但a.png
,如果我我的代码改成这样:
import tarfile
a = tarfile.open('test.tar.gz', 'a:')# or a:gz
a.add('a.png')
a.close()
程序崩溃,错误日志:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/tarfile.py", line 1678, in open
return func(name, filemode, fileobj, **kwargs)
File "/usr/lib/python2.7/tarfile.py", line 1705, in taropen
return cls(name, mode, fileobj, **kwargs)
File "/usr/lib/python2.7/tarfile.py", line 1588, in __init__
raise ReadError(str(e))
tarfile.ReadError: invalid header
我的错误是什么?我该怎么做?
好的,我明白了。当我阅读python文档时忽略了笔记。 – 2015-02-06 09:14:05
有谁知道这是为什么? append.gz是否存在一些内在的数据保真度问题,还是没有人将它添加到Python模块? – user1717828 2017-05-16 12:05:52