Python:无法从tar中仅提取特定文件夹

桑托什

我正在尝试从大tar文件中提取我感兴趣的特定文件夹。

import  tarfile
import os

list_dir = []
models = ["usb","test"]
with tarfile.open("build_today.tar.gz") as tar:
for tarinfo in tar.getmembers():
    if tarinfo.name.startswith(os.path.join("build_today","pips")):
        for model in models:
            if tarinfo.name.startswith(os.path.join("build_today","pips",model,"")):
                list_dir.append(tarinfo.name)
    elif tarinfo.name.startswith(os.path.join("build_today","objects")):
        for model in models:
            if tarinfo.name.startswith(os.path.join("build_today","objects",model,"")):
                list_dir.append(tarinfo.name)
    else:
        list_dir.append(tarinfo.name)
print list_dir
tar.extractall(members=list_dir)

我能够打印'list_dir',在这里我可以看到期望的内容。但是提取失败。

失败并显示错误:

Traceback (most recent call last):
File "tar.py", line 18, in <module>
tar.extractall(members=list_dir)
File "/grid/common/pkgs/python/v2.7.10/lib/python2.7/tarfile.py", line 2067, in extractall
if tarinfo.isdir():
AttributeError: 'str' object has no attribute 'isdir'

请帮忙!

亚历西奥萨维

从初步分析来看,问题似乎出在这里:

list_dir.append(tarinfo.name)

在这里,您将文件名附加为字符串。相反,您需要具有.isdir()内置方法的“文件对象”

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从特定文件夹创建文件的tar文件。提取后路径错误

从tar.gz中提取特定文件夹

使用tar仅备份特定文件夹

tar仅文件中列出的那些文件夹

如何仅将压缩文件夹中的特定文件夹提取到给定目录?

将 tar 档案提取到单独的文件夹中

从压缩的存档中仅提取特定文件夹的内容到给定目录

Python -- 仅在目标文件夹中查找特定模式的 tar.gz 文件

使用tar提取文件夹内容?

使用PHP + TAR提取文件夹

如何从特定文件夹中提取文件,文件名存储在python列表中?

无法仅针对特定文件夹启动测试

使用tar压缩文件夹中的特定文件夹(目录)

从tar.gz将特定文件夹提取到特定目录

在保留文件夹结构的同时仅压缩文件夹中的特定文件

从Python3中的zip存档中提取特定文件夹的内容

给定 Colab 中的文件夹路径,如何在 python 中提取其中的特定部分?

使用 python boto 仅下载 S3 存储桶中的特定文件夹

如何从Python中的文件路径提取文件夹路径?

tar:将单个文件提取到目录中而不创建子文件夹

从tarball提取特定文件夹到特定文件夹

Tar无法从.tar存档扩展子文件夹

将tar文件夹的内容提取到目标目录中

将 tar.gz 存档提取到不同的文件夹中(由于限制)

rsync仅复制特定文件夹

如何在python中获得具有特定文件夹同级的特定文件夹

Python中的Zip结构尝试仅读取文件夹

从 (GNU)tar 存档中提取子文件夹

提取文件夹中的Zip文件