我有一个包含10个* .tar文件的文件夹(dataset_folder)。
这是我的代码,用于在特定路径中提取它们。

listtar=glob.glob(dataset_folder+'/*.tar')
for file in listtar:
    tar=tarfile.open(file)
    tar.extractall(path=dataset_folder)
    tar.close()


请注意,dataset_folder位于当前目录下。
 我得到一个错误

ReadError: unexpected end of data


另请注意,我可以手动解压缩文件而不会出现问题。

最佳答案

直接从Python处理损坏的文件,捕获相关异常并跳过损坏的文件:

listtar=glob.glob(dataset_folder+'/*.tar')
for file in listtar:
    try:
        with tarfile.open(file) as tar:
            tar.extractall(path=dataset_folder)
    except tarfile.ReadError:
        print("File {} is corrupt".format(file))

关于python - 使用python提取tarfile列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49984765/

10-12 21:00