Я хочу добавить файл в файл tar. Например, файлы в test.tar.gz - это a.png, b.png, c.png. У меня есть новый файл png с именем a.png, я хочу добавить к a.png в test.tar.gz и покрыть старый файл a.png в test.tar.gz Мой код:
import tarfile
a = tarfile.open('test.tar.gz', 'w:gz')
a.add('a.png')
a.close()
то все файлы в test.tar.gz исчезли, но 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
Каковы мои ошибки и что мне делать?
Обновление. Из документации следует, что gz файлы не могут быть открыты в a режима. Если да, то каким образом можно добавлять или обновлять файлы в существующем архиве?



