在python中提取tar.gz{some integer}



我正在尝试用这种格式提取文件名-->filename.tar.gz10

我尝试过多桩法,但对于所有这些,我都得到了未知格式的错误。它适用于以tar.gz00结尾的文件。我试图更改名称,但仍然不起作用。

以下是我尝试过的,

import tarfile

file = tarfile.open('filename.tar.gz10')
file.extractall('./extracted_path')

file.close()

另一种方式是,

shutil.unpack_archive('./filename.tar.gz10', './extracted_path', 'tar.gz17')

感谢您提前提供的帮助。

这可能是因为存档被分割成了更小的块,在linux上,你可以使用split -b命令这样做,所以现在一个大文件实际上是多个更小的文件,它们的名称类似

file.tar.gz01
file.tar.gz02
file.tar.gz03
file.tar.gz04
etc...

你无法单独解压缩这些文件,所以你必须先将它们连接到一个文件中,然后再解压缩。

要验证它是否被拆分,请运行file {filename},如果不能将其识别为gzip压缩的存档,则它将被建议拆分(这就是为什么会出现未知格式错误(

您可以尝试执行以下操作:

from glob import glob
import os

path = '/path/to/' # location of your files
list_of_files = glob(path + '*.tar.gz*') # list all gzip files

bash_command = 'gzip -dk filename.tar.gz' + ' '.join(list_of_files) # create bash command to concatenate the files
os.system(bash_command)

最新更新