Voici un petit programme qui montre le principe de récursivité appliqué ici à un ZIP contenant lui-même des ZIP ... et bien sûr on ne veut rien écraser.

Toute la subtilité repose sur le numéro associé au répertoire de décompression qui est passé au sens du C par adresse pour pouvoir en conserver la valeur malgré la récursivité (empilement).

Le passage par adresse est effectuée ici par l’utilisation du premier élément d’une liste.

folder_num=[0]

On passe alors non pas la valeur, mais la liste en paramètre.

recurse_unzip (mydir, folder_num)

Le fichier zip a gentiment été créé par ChatGPT.

A noter l’utilisation de 2 "constantes", pas forcément le mieux car en Python les vraies constantes n’existent pas.

Documents

Accueil > Linux > Développement > [Python] Récursivité