[Python] Muovere cartelle

Pietro Battiston battiston a mail.dm.unipi.it
Ven 26 Gen 2007 11:52:15 CET


Salve a tutti, ho un problema:

devo muovere una cartella da un posto ad un altro. In questo altro 
posto, ci può già essere una cartella con lo stesso nome, che in tal 
caso deve essere sostituita. Sembra una cosa semplicissima (e 
probabilmente lo è), ma:
- nel modulo os (e neanche in os.path) non ho trovato niente di utile.
- nel modulo shutil c'è move, che però implementa copytree, che si 
rifiuta di sovrascrivere.

Quindi l'unica cosa che mi viene in mente è: shutil.rmtree() + 
shutil.move(). Ma non c'è niente di più furbo?

Non lo dico (solo) per un problema di eleganza, ma anche per un problema 
di consistenza (per un tot di tempo la cartella, che contiene un albero 
piuttosto complesso, sarà inesistente, e questo mi scoccia): so bene che 
né rmtree né shutil né qualsiasi altra funzione che possiate 
consigliarmi saranno atomiche, ma mi accontenterei di una funzione che 
modifichi una per una le cartelle interne, senza cancellare mai quella 
globale (e magari, più in generale, le sottocartelle  -  e, se non è 
chiedere troppo, i symlink - in comune).

Grazie, ciao

Pietro


Maggiori informazioni sulla lista Python