OVH Cloud OVH Cloud

Deplacer un dossier

7 réponses
Avatar
cho7
Bonjour,

question surement très bête : comment déplacer/copier un dossier depuis
python?

Je peux bien entendu utiliser os.system(), mais :

1/ c'est pas portable
2/ je ne sais pas comment déplacer un dossier depuis MS-DOS (je suis
plutôt shell linux dans l'âme...)

Donc si quelqu'un connait une methode simple, portable et efficace, et
au pire tournant sous windows (oui car c'est surtout ca le problème,
l'application tournera au final sous le windows d'un client), j'lui
serai très reconnaissant de m'aiguiller :)


Merci,

bonne soirée.

7 réponses

Avatar
Vincent Bernat
OoO Pendant le journal télévisé du vendredi 03 février 2006, vers
20:08, cho7 disait:

Je peux bien entendu utiliser os.system(), mais :

1/ c'est pas portable
2/ je ne sais pas comment déplacer un dossier depuis MS-DOS (je suis
plutôt shell linux dans l'âme...)

Donc si quelqu'un connait une methode simple, portable et efficace, et
au pire tournant sous windows (oui car c'est surtout ca le problème,
l'application tournera au final sous le windows d'un client), j'lui
serai très reconnaissant de m'aiguiller :)


os.rename fonctionne si le dossier à déplacer est sur le même
disque. Dans le cas contraire, tu vas devoir implanter la fonction de
déplacement toi même.
--
/*
* For moronic filesystems that do not allow holes in file.
* We may have to extend the file.
*/
2.4.0-test2 /usr/src/linux/fs/buffer.c

Avatar
Laurent Pointal
cho7 wrote:

Bonjour,

question surement très bête : comment déplacer/copier un dossier depuis
python?

Je peux bien entendu utiliser os.system(), mais :

1/ c'est pas portable
2/ je ne sais pas comment déplacer un dossier depuis MS-DOS (je suis
plutôt shell linux dans l'âme...)

Donc si quelqu'un connait une methode simple, portable et efficace, et
au pire tournant sous windows (oui car c'est surtout ca le problème,
l'application tournera au final sous le windows d'un client), j'lui
serai très reconnaissant de m'aiguiller :)


Une piste: documentation Python, module shutil











































Et si vous avez lu jusque là, il y a dans shutil:

move(src, dst)
Recursively move a file or directory to another location.

If the destination is on our current filesystem, then simply use rename.
Otherwise, copy src to the dst and then remove src.

New in version 2.3.


A+

Laurent.

Avatar
Eric Deveaud
cho7 wrote:
Bonjour,

question surement très bête : comment déplacer/copier un dossier depuis
python?

Je peux bien entendu utiliser os.system(), mais :

1/ c'est pas portable
2/ je ne sais pas comment déplacer un dossier depuis MS-DOS (je suis
plutôt shell linux dans l'âme...)

Donc si quelqu'un connait une methode simple, portable et efficace


dans le pire des cas on peu envisager une methode pas tres simple, 100%
portable et pas tres efficace

parcourir l'arborescence sour le repertoire source, pour chaque fichier de
celle-ci lire source/file et ecrire dest/file
recommencer pour chaque sous repertoire de source en creeant au prealable le
repertoire dest/sous_repertoire adequat.

Eric, taquin ;-))

PS shutils implemente pas mal de methodes plus efficaces et portables que ce
qui est propose ci-desus.

--
bof> "mot de passe invalide" ca veut dire quoi?
Que tu peux s'assoir dans les places réservées des autobus.
-+- LW in GNU : Pour l'invalide, c'est l'opéra ou la concorde. -+-

Avatar
cho7
Réponse groupée:
je vais finalement essayer de coder ma propre fonction de deplacement,
car je vais, afin d'optimiser le réseau, faire en sorte de ne déplacer
que ce qui n'est pas déjà présent dans le lecteur réseau de destination
(c'est un script d'archivage)

Merci néanmoins à tous les 3 pour vos réponses
Avatar
Laurent Pointal
Réponse groupée:
je vais finalement essayer de coder ma propre fonction de deplacement,
car je vais, afin d'optimiser le réseau, faire en sorte de ne déplacer
que ce qui n'est pas déjà présent dans le lecteur réseau de destination
(c'est un script d'archivage)

Merci néanmoins à tous les 3 pour vos réponses


Juste une idée comme ça... installer et utiliser rsync (c'est pas mal
fait pour ça).

Voir aussi snapy ( http://www.flibuste.net/libre/snapy/ )

Avatar
Eric Deveaud
cho7 wrote:
Réponse groupée:
je vais finalement essayer de coder ma propre fonction de deplacement,
car je vais, afin d'optimiser le réseau, faire en sorte de ne déplacer
que ce qui n'est pas déjà présent dans le lecteur réseau de destination
(c'est un script d'archivage)


tu peux jetter un coup d'oeil a ceci

<URL:http://www.nongnu.org/rdiff-backup/>

Eric


--
un tentative de penetration (pas de sous entendus) d'un systeme peut
etr compare a un viol. Le portscan reviendrait a promener ses doigts
pour voir s'il y a une ceinture de chastete ...
-+- M in GNU - Petit traité de sexualité informatique appliquée -+-

Avatar
Méta-MCI
Bonsoir !

Uniquement sous windows, je signale l'existence de l'utilitaire (en ligne de
commande) ROBOCOPY, qui permet de faire des copies-miroir (différentielles)
de répertoires, sur disque ou en réseau, avec plein de possibilités, comme
le choix du nombre de retry, pour les fichiers occupés ; la possibilité de
définir un pourcentage d'occupation machine ; gestion d'un fichier de log ;
gestion des horaires de traitement ; simulation de copie ; gestion des
purges, des dates ; etc.

ROBOCOPY est gratuit, fourni avec le kit de ressource technique,
téléchargeable chez MS.

Je l'utilise beaucoup avec Python, via os.popen.

@-salutations

Michel Claveau