Extraire les fichiers du zip sans maintien de la structure à l'aide de python ZipFile?

J'essaie d'extraire tous les fichiers de .zip contenant des sous-dossiers dans un dossier. Je veux que tous les fichiers des sous-dossiers de l'extrait dans un seul dossier, sans garder la structure originale. Pour le moment, j'ai extrait tous les, déplacer les fichiers vers un dossier, puis supprimer les sous-dossiers. Les fichiers ayant le même nom sont écrasé.

Est-il possible de le faire avant d'écrire des fichiers?

Ici est une structure par exemple:

my_zip/file1.txt
my_zip/dir1/file2.txt
my_zip/dir1/dir2/file3.txt
my_zip/dir3/file4.txt

À la fin, je souhaite ceci:

my_dir/file1.txt
my_dir/file2.txt
my_dir/file3.txt
my_dir/file4.txt

Ce que je peux ajouter à ce code ?

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()

si je renomme le chemin des fichiers à partir de zip_file.namelist(), j'ai cette erreur:

KeyError: "There is no item named 'file2.txt' in the archive"
InformationsquelleAutor Thammas | 2011-02-07