Maximilian
Maximilian

Reputation: 1375

Different name of unpacked tar.gz folder using tarfile.extractall()

I am using pythons tarfile.extractall() to unpack a foo.tar.gz file. I want to access the extracted folder, but sometimes the extracted folder has a different name than the packed file. I need a way to control the name of the extracted folder or, a return value that tells me the name of the extracted folder.

Example

packed file: foo-rc-2.0.0.tar.gz

unpacked folder: foo-2.0.0-rc

Upvotes: 1

Views: 1802

Answers (2)

Martijn Pieters
Martijn Pieters

Reputation: 1121924

tarfile.extractall() simply extracts all the files in the tarball to the current directory, or a directory of your choice.

If the tarball contains files with a nested directory structure, then that's what'll be extracted. It is that directory structure that you see. The names of these directories (there can be more than 1) do not have to correspond with the name of the tarball.

If you need to move these extracted contents, do so in a new and empty directory, so that you can just pick up everything in that directory:

os.mkdir('extraction')
tarball.extractall('extraction')
for name in os.listdir('extraction'):
     # move that name.

Upvotes: 1

Chris Jacobs
Chris Jacobs

Reputation: 81

You can use .getnames() to list the contents of the tarfile obj.

Upvotes: 0

Related Questions