Когда я вызываю add()
на a tarfile
объект с путем к файлу, файл добавляется к tarball со связанной иерархией каталогов. Другими словами, если я разархивировал tarfile, каталоги в исходной иерархии каталогов воспроизводятся.
Существует ли путь к простому добавлению простого файла без информации о каталоге, что несмолить получающийся tarball производит плоский список файлов?
Вы можете использовать tarfile.addfile ()
в TarInfo
, который является первым параметром, вы можете указать имя
, которое отличается от файла, который вы добавляете.
Этот фрагмент кода должен добавить / path / to / filename
в файл TAR, но извлечет его как myfilename
:
tar.addfile(tarfile.TarInfo("myfilename.txt"), open("/path/to/filename.txt"))
Возможно, вы можете использовать аргумент "arcname" в TarFile.add(name, arcname). Он принимает альтернативное имя, которое будет у файла внутри архива.