Я пытаюсь извлечь все файлы из .zip, содержащие подпапки в одной папке. Я хочу, чтобы все файлы из подпапок извлекались только в одной папке без сохранения исходной структуры. На данный момент я извлекаю все, перемещаю файлы в папку, а затем удаляю предыдущие подпапки. Файлы с одинаковыми именами перезаписываются.
Возможно ли это сделать до написания файлов?
Вот структура, например:
my_zip/file1.txt
my_zip/dir1/file2.txt
my_zip/dir1/dir2/file3.txt
my_zip/dir3/file4.txt
В конце я этого хочу:
my_dir/file1.txt
my_dir/file2.txt
my_dir/file3.txt
my_dir/file4.txt
Что я могу добавить в этот код?
import zipfile
my_dir = "D:\\Download\\"
my_zip = "D:\\Download\\my_file.zip"
zip_file = zipfile.ZipFile(my_zip, 'r')
for files in zip_file.namelist():
zip_file.extract(files, my_dir)
zip_file.close()
Если я переименую путь к файлам из zip_file.namelist(), у меня есть эта ошибка:
KeyError: "There is no item named 'file2.txt' in the archive"