Déplacement de fichiers sous python
Je suis confus avec fichier en mouvement sous python.
Sous windows en ligne de commande, si j'ai le répertoire c:\et un répertoire c:\b, je peux faire
move c:\a c:\b
qui se déplace de a à b résultat est une structure de répertoire c:\b\a
Si j'ai essayer avec les os.renommer ou shutil.déplacer:
os.rename("c:/a", "c:/b")
- Je obtenir
WindowsError: [Error 17] Cannot create a file when that file already exists
Si je déplace un seul fichier sous c:\, il fonctionne.
En python comment puis-je déplacer un répertoire vers un autre répertoire existant?
voulez-vous passer tout le contenu du répertoire vers un autre répertoire ou de déplacer le répertoire lui-même?
OriginalL'auteur Ash | 2009-07-09
Vous devez vous connecter pour publier un commentaire.
est équivalent à
sous windows en ligne de commande
OriginalL'auteur sunqiang
Vous pouvez essayer d'utiliser le Shutil module.
OriginalL'auteur Key
os.rename("c:/", "c:/b"/) --> modifier le nom d'un dossier dans le dossier b
os.rename("c:/", "c:/b/a") --> de Placer le dossier b dans un dossier
OriginalL'auteur luc
Quand j'ai besoin de beaucoup d'opérations de système de fichiers, je préfère utiliser l' 'chemin' module:
http://pypi.python.org/pypi/path.py/2.2
C'est très bon, très léger wrapper autour intégrée dans 'os.chemin d'accès du module.
Aussi code:
est un peu étrange, parce qu'il n'y est fonction spéciale pour cela:
OriginalL'auteur Mikhail Churbanov
Vous devez indiquer le chemin d'accès complet, il est déplacé à:
En fait, il semble
shutil.move
faire ce que vous souhaitez en regardant sa documentation:(Et ses source.)
Ce qui vous fait dire ça? Les docs disent qu'il est bizarre le comportement de certains systèmes de fichiers UNIX, mais l'OP parle de Windows.
Hmm, c'est simple pour un répertoire unique, mais le déplacement d'une grande structure de répertoire vers un autre dossier est vraiment gênant de cette façon. Assez étrange que python ne prend pas en charge cette.
Il n' -- shutil.déplacer vous pouvez les utiliser par l'intermédiaire de: import shutil; shutil.déplacer(src, dst)
Vous avez raison, je le conseil à l'encontre de l'os.renommer en raison des problèmes que j'ai eus avec elle, tandis que le codage d'un jouet FUSIBLE du système de fichiers, shutil d'autre part fonctionne très bien quel que soit le système d'exploitation est.
OriginalL'auteur cdleary
L'aide d'Tordu de FilePath:
ou, plus généralement:
OriginalL'auteur Glyph