Извлекайте файлы из zip без сохранения папки верхнего уровня с python zipfile

Я использую текущий код для извлечения файлов из zip-файла, сохраняя структуру каталогов:

zip_file = zipfile.ZipFile('archive.zip', 'r')
zip_file.extractall('/dir/to/extract/files/')
zip_file.close()

Вот структура для примера zip-файла:

/dir1/file.jpg
/dir1/file1.jpg
/dir1/file2.jpg

В конце я хочу это:

/dir/to/extract/file.jpg
/dir/to/extract/file1.jpg
/dir/to/extract/file2.jpg

Но он должен игнорировать только в том случае, если zip-файл имеет папку верхнего уровня со всеми файлами внутри него, поэтому, когда я извлекаю zip с такой структурой:

/dir1/file.jpg
/dir1/file1.jpg
/dir1/file2.jpg
/dir2/file.txt
/file.mp3

Так и должно быть:

/dir/to/extract/dir1/file.jpg
/dir/to/extract/dir1/file1.jpg
/dir/to/extract/dir1/file2.jpg
/dir/to/extract/dir2/file.txt
/dir/to/extract/file.mp3

Есть идеи?

5
задан xsquirrel 31 December 2011 в 18:49
поделиться