Как файлы могут быть добавлены к tarfile с Python, не добавляя иерархию каталогов?

Когда я вызываю add() на a tarfile объект с путем к файлу, файл добавляется к tarball со связанной иерархией каталогов. Другими словами, если я разархивировал tarfile, каталоги в исходной иерархии каталогов воспроизводятся.

Существует ли путь к простому добавлению простого файла без информации о каталоге, что несмолить получающийся tarball производит плоский список файлов?

52
задан Martin Thoma 10 December 2014 в 01:50
поделиться

2 ответа

Вы можете использовать tarfile.addfile () в TarInfo , который является первым параметром, вы можете указать имя , которое отличается от файла, который вы добавляете.

Этот фрагмент кода должен добавить / path / to / filename в файл TAR, но извлечет его как myfilename :

tar.addfile(tarfile.TarInfo("myfilename.txt"), open("/path/to/filename.txt"))
43
ответ дан 7 November 2019 в 09:13
поделиться

Возможно, вы можете использовать аргумент "arcname" в TarFile.add(name, arcname). Он принимает альтернативное имя, которое будет у файла внутри архива.

6
ответ дан 7 November 2019 в 09:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: