Я хочу загрузить архив темы в веб-модуль django и хочу получить имя самого верхнего -каталога в архиве, чтобы использовать его в качестве имени темы. Архив всегда будет иметь формат tar -gzip и всегда будет иметь только одну папку на верхнем уровне (, хотя другие файлы могут существовать параллельно с ней )с различными подкаталогами -, содержащими шаблоны, css, изображения и т. д. в том порядке, который лучше всего подходит для темы.
В настоящее время мой инструмент, основанный на очень полезном коде из MegaMark16, использует следующий метод:
f = tarfile.open(fileobj=self.theme_file, mode='r:gz')
self.name = f.getnames()[0]
Где файл self.theme _— это полный путь к загружаемому файлу. Это прекрасно работает до тех пор, пока порядок записей в архиве правильный, но во многих случаях это не так. Я, конечно, могу перебрать весь архив и вручную проверить правильные характеристики «имени», но я подозреваю, что есть более элегантный и быстрый подход. Какие-либо предложения?