重命名提取文件的文件夹

rename the folder of an extracted file

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

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

但我想将提取文件的所有信息添加到 .txt 文件中,但我不知道 .tar.gz 文件中包含的文件夹名称。如果您不知道名称并提取它们,是否可以 know/rename 文件夹?谢谢。

我建议比较解压前后目录中的文件列表。其他文件和文件夹将来自 tar 个文件。

tarfile 中的每个条目都有一个 TarInfo header。您可以通过多种方式获取该信息,最简单的方法就是迭代。这包括您可以使用 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