Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3353

Re: boucle dans fonction récursive...

From Benoit Izac <use.reply.to@INVALID.ADDRESS>
Newsgroups fr.comp.lang.python
Subject Re: boucle dans fonction récursive...
Date 2020-06-15 23:56 +0200
Message-ID <87v9js9eo9.fsf@izac.org> (permalink)
References <356860d9-d583-4b5c-9248-24ea6d8ca0fdo@googlegroups.com>

Show all headers | View raw


Bonjour,

Le 15/06/2020 à 22:04, sideley@yahoo.com a écrit dans le message
<356860d9-d583-4b5c-9248-24ea6d8ca0fdo@googlegroups.com> :

> Je programme une petite routine de copie récursive de fichiers qui
> consiste à déplacer tous les fichiers dans une arborescence vers un
> autre endroit. Il se trouve que la boucle <for...in> a un comportement
> inattendu: si le premier sous répertoire (de premier niveau dans
> l'arborescence) obtenu par listdir() est vide (ou devenu vide après le
> déplacement de son contenu) alors il s'arrête, Il n'y a pas de passage
> à l'élément souvent du répertoire. Avez vous une explications ?
> J'utilise WinPy 3.7.7. Ci dessous les lignes de codes:
>
> import os, shutil, pathlib
> def copie(dossier,rep_dest):
            ^^^^^^^
>     contenu_rep = os.listdir(dossier)
>     for elm in contenu_rep:
>         chemin = dossier + '/' + elm    # dossier a été modifié
                   ^^^^^^^
>         if os.path.isdir(chemin):
>             dossier = chemin      #  <= l'erreur
              ^^^^^^^
Tu utilises le même nom de variable qu'au dessus donc, à la boucle
suivante, dossier n'est plus celui passé en paramètre de copie().

>             copie(dossier ,rep_dest)

              copie(chemin, rep_dest)

>         elif os.path.isfile(chemin) and (dossier != rep_dest):
>             shutil.move(chemin, rep_dest)
>
> def prog ():
>     dossier = input('Entrez le répertoire à scanner ')
>     rep_dest = input('Rép destinataire ? ')
>     copie(dossier,rep_dest)
>     print ('\n Fait')
>     return 1

-- 
Benoit Izac

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

boucle dans fonction récursive... sideley@yahoo.com - 2020-06-15 13:04 -0700
  Re: boucle dans fonction récursive... Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2020-06-15 23:56 +0200
    Re: boucle dans fonction récursive... Artis Sideley <sideley@yahoo.com> - 2020-06-15 15:28 -0700
  Re: boucle dans fonction récursive... Pierre Maurette <maurette.pierre@free.fr> - 2020-06-16 07:15 +0200

csiph-web