重命名解压缩文件的文件夹

时间:2018-04-05 21:22:45

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

我有一些.tar.gz文件,我可以用:

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

但我想在.txt文件中添加提取文件的所有信息,但我不知道文件夹' .tar.gz文件的内部名称。如果您不知道名称并提取它们,是否可以知道/重命名文件夹?谢谢。

2 个答案:

答案 0 :(得分:2)

tarfile中的每个条目都有一个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

答案 1 :(得分:1)

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

相关问题