Как с помощью Python'а 'tarfile' я могу получить -самый верхний каталог в tar-архиве?

Я хочу загрузить архив темы в веб-модуль django и хочу получить имя самого верхнего -каталога в архиве, чтобы использовать его в качестве имени темы. Архив всегда будет иметь формат tar -gzip и всегда будет иметь только одну папку на верхнем уровне (, хотя другие файлы могут существовать параллельно с ней )с различными подкаталогами -, содержащими шаблоны, css, изображения и т. д. в том порядке, который лучше всего подходит для темы.

В настоящее время мой инструмент, основанный на очень полезном коде из MegaMark16, использует следующий метод:

f = tarfile.open(fileobj=self.theme_file, mode='r:gz')
self.name = f.getnames()[0]

Где файл self.theme _— это полный путь к загружаемому файлу. Это прекрасно работает до тех пор, пока порядок записей в архиве правильный, но во многих случаях это не так. Я, конечно, могу перебрать весь архив и вручную проверить правильные характеристики «имени», но я подозреваю, что есть более элегантный и быстрый подход. Какие-либо предложения?

5
задан growlf 29 June 2012 в 21:22
поделиться