我想将主题存档上传到 django web 模块,并希望提取存档中最顶层目录的名称以用作主题的名称。存档将始终为 tar-gzip 格式,并且在顶层始终只有一个文件夹(尽管其他文件可能与其并行存在),其中包含模板、css、图像等的各种子目录,以任何适合的顺序排列主题最好。
目前,基于 MegaMark16 中非常有用的代码,我的工具使用以下方法:
f = tarfile.open(fileobj=self.theme_file, mode='r:gz')
self.name = f.getnames()[0]
其中 self.theme_file 是上传文件的完整路径。只要 tarball 中条目的顺序恰好是正确的,这就可以正常工作,但在许多情况下并非如此。我当然可以遍历整个档案并手动检查正确的“名称”特征,但我怀疑有一种更优雅和快速的方法。有什么建议么?