Different name of unpacked tar.gz folder using tar

2019-08-12 04:18发布

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

2条回答
对你真心纯属浪费
2楼-- · 2019-08-12 04:53

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.
查看更多
我只想做你的唯一
3楼-- · 2019-08-12 05:05

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

查看更多
登录 后发表回答