我正在尝试用这种格式提取文件名-->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)