【问题标题】:rename the folder of an extracted file重命名提取文件的文件夹
【发布时间】:2018-09-15 19:53:56
【问题描述】:

我有一些 .tar.gz 文件,我可以使用以下方法提取它们:

if (fname.endswith("tar.gz")):
tar = tarfile.open(fname, "r:gz")
tar.extractall()
tar.close()

但我想将提取文件的所有信息添加到 .txt 文件中,但我不知道 .tar.gz 文件里面包含的文件夹名称来执行此操作。如果您不知道名称并提取它们,是否可以知道/重命名文件夹?谢谢。

【问题讨论】:

    标签: python python-3.x python-2.7 io archive


    【解决方案1】:

    tar 文件中的每个条目都有一个TarInfo 标头。您可以通过多种方式获取该信息,最简单的方法就是迭代。这包括您可以使用os.posixpath 函数管理的路径名。例如,假设我手头有一个 tgz 文件:

    >>> tf = tarfile.open("Downloads/dbutil-0.5.0.tar.gz", "r:gz")
    >>> for info in tf:
    ...     print(info.name, "DIR" if info.isdir() else "FILE")
    ... 
    dbutil-0.5.0 DIR
    dbutil-0.5.0/setup.py FILE
    dbutil-0.5.0/dbutil DIR
    dbutil-0.5.0/dbutil/connection.py FILE
    dbutil-0.5.0/dbutil/__init__.py FILE
    dbutil-0.5.0/dbutil/row.py FILE
    dbutil-0.5.0/PKG-INFO FILE
    dbutil-0.5.0/dbutil.egg-info DIR
    dbutil-0.5.0/dbutil.egg-info/dependency_links.txt FILE
    dbutil-0.5.0/dbutil.egg-info/PKG-INFO FILE
    dbutil-0.5.0/dbutil.egg-info/SOURCES.txt FILE
    dbutil-0.5.0/dbutil.egg-info/top_level.txt FILE
    dbutil-0.5.0/setup.cfg FILE
    

    【讨论】:

      【解决方案2】:

      我建议比较档案提取前后目录中的文件列表。其他文件和文件夹将来自 tar 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 1970-01-01
        • 2016-07-24
        • 2021-06-23
        • 2012-09-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多