[PIPython] Copiare ricorsivamente una directory

Carlo C8E Miron carlo.miron
Gio 30 Giu 2005 16:10:50 CEST


Il 30/06/05, Enrico Gabubbi Manfredo<elinux a gabubbi.it> ha scritto:
> questo è un codice di prova per leggere e copiare le dir in maniera ricorsiva
> Quando poi funzionerà lo ripasserò e renderò meno ripetitivo....
> 
> import os
> import shutil
> 
> PathOR = "/home/utente/sorgente"
> PathDEST = "/home/utente/destinazione/"
> 
> for path, dirs, files in os.walk(PathOR) :
>         for dir in dirs:
>                 if os.path.isdir(os.path.join(PathOR, dir)):
>                         if os.path.isdir(os.path.join(PathDEST, dir)):
>                                 pass
>                         else:
>                                 os.makedirs(os.path.join(PathDEST, dir))
>                 for file in files:
>                         shutil.copy2(os.path.join(PathOR, file), os.path.join(PathDEST, file))

boh secondo me stai facendo le cose + complicate del necessario..
questo dovrebbe funzionare (untested)::

import os
import shutil

PathOR = "/home/utente/sorgente"
PathDEST = "/home/utente/destinazione/"

os.chdir(PathOR)
for path, dirs, files in os.walk("."):
    for dir in dirs:
        if not os.path.isdir(os.path.join(PathDEST, path, dir)):
            os.mkdir(os.path.join(PathDEST, path, dir))
    for file in files:
        shutil.copy2(os.path.join(PathOR, path, file),
os.path.join(PathDEST, path, file))

ps: occhio ai symlink, guardati il codice di shutil.copytree()

-- 
Carlo C8E Miron, ICQ #26429731
-- 
Disclaimer:
If I receive a message from you, you are agreeing that:
1. I am by definition, "the intended recipient".
2. All information in the email is mine to do with as I see fit and
 make such financial profit, political mileage, or good joke as it
 lends itself to. In particular, I may quote it on USENET or the WWW.
3. I may take the contents as representing the views of your company.
4. This overrides any disclaimer or statement of confidentiality that
 may be included on your message.


More information about the Python mailing list