2016-11-12 1 views
0

J'utilise le module shutil Python pour déplacer 4 fichiers txt de FolderA à FolderB.Pourquoi ne puis-je pas déplacer mes fichiers texte dans un dossier différent en Python?

Quand je lance le code suivant j'obtiens une erreur de retraçage:

shutil.move('C:\Users\Student\Desktop\FolderA.txt', 'C:\Users\Student\Desktop\FolderB') 

Mais je sais que la voie existe en effet parce que quand je tente cette commande, il fonctionne très bien et déplace l'ensemble du dossier A (y compris les fichiers txt) dans FolderB:

shutil.move('C:\Users\Student\Desktop\FolderA', 'C:\Users\Student\Desktop\FolderB') 

Toute façon de déplacer les fichiers texte sans juste les copier? J'utilise Python Shell 2.7 au cas où vous voudriez savoir.

+0

Quelle est l'erreur de retraçage? Pourquoi pensez-vous que FolderA.txt est égal aux 4 fichiers texte? Vous pouvez regarder dans les modules 'fnmatch' ou' glob'. – AChampion

Répondre

1

1er, échapper au séparateur de chemin correctement, que ce soit dans une double barre oblique inverse ou ajouter un r'' devant indiquer sa chaîne brute comme ci-dessous

cette commande ne fait pas ce que vous vouliez, il essaie de déplacer le fichier appel FolderA.txt dans le dossierB

shutil.move(r'C:\Users\Student\Desktop\FolderA.txt', r'C:\Users\Student\Desktop\FolderB') 

code ci-dessous devrait faire ce que vous vouliez. Utilisation du module glob grep tous les fichiers txt dans FolderA puis les déplacer 1 par 1 dans FolderB

import glob 
# this will move all txt file from FolderA into FolderB 
# but you need to ensure FolderB exists, else it might create a file named FolderB instead 
for f in glob.glob(r'C:\Users\Student\Desktop\FolderA\*.txt'): 
    shutil.move(f, r'C:\Users\Student\Desktop\FolderB') 
+0

Est-il possible d'utiliser simplement le module shutil? – YoungCoder

+0

C'est ce qu'on m'a demandé d'utiliser. – YoungCoder

+1

je ne sais pas si c'est possible, au plus vous pouvez utiliser os.listdir() pour obtenir toute la liste des fichiers au lieu d'utiliser glob module, si vous voulez déplacer tout dans le dossier sans filtrer fichier .txt puis c'est possible avec shutil seul – Skycc

0

Vous devez utiliser des barres obliques inverses doubles lors de l'utilisation des chemins d'accès Windows, sinon le caractère suivant est échappé et déclenche donc le IOError: [Errno 2] No such file or directory:...'. C'est à dire.

shutil.move('C:\\Users\\Student\\Desktop\\FolderA.txt', 'C:\\Users\\Student\\Desktop\\FolderB') 
+0

Je devrais noter que double antislash me donnait toujours la même erreur. – YoungCoder