テーマ アーカイブを django Web モジュールにアップロードし、アーカイブの最上位ディレクトリの名前を取得して、テーマの名前として使用したいと考えています。アーカイブは常に tar-gzip 形式であり、テンプレート、css、画像などを含むさまざまなサブディレクトリを含む、最上位レベルに常に 1 つのフォルダーしかありません (ただし、他のファイルが並行して存在する場合があります)。テーマ最高。
現在、MegaMark16 の非常に便利なコードに基づいて、私のツールは次の方法を使用しています。
f = tarfile.open(fileobj=self.theme_file, mode='r:gz')
self.name = f.getnames()[0]
ここで、self.theme_file はアップロードされたファイルへのフル パスです。tarball 内のエントリの順序がたまたま正しい限り、これは正常に機能しますが、多くの場合、そうではありません。確かに、アーカイブ全体をループして、適切な「名前」の特徴を手動でチェックできますが、もっとエレガントで迅速なアプローチがあるのではないかと思います。助言がありますか?