2016-05-19 2 views
0

système Windows 8.1 Python 3.4
Récupère plusieurs fois FileNotFound Errno2, en essayant de copier tous les fichiers dans un répertoire.python 3.x shutil.copy FichierNotFoundError

import os 
import shutil 
source = os.listdir("C:\\Users\\Chess\\events\\") 
for file in source : 
    shutil.copy(file, "E:\\events\\") 

cède

FileNotFoundError : [Errno2] No such file or directory 'aerofl03.pgn'. 

Bien que 'aerofl03.pgn' est d'abord dans la liste des sources ['aerofl03.pgn', ...]. Même résultat si une ligne est ajouté:

for file in source : 
    if file.endswith('.pgn') : 
     shutil.copy(file, "E:\\events\\") 

Même résultat si un code

for file in "C:\\Users\\Chess\\events\\" : 

Mon shutil.copy (sourcefile, destinationfile) fonctionne très bien la copie des fichiers individuels.

+0

Vérifiez la valeur du fichier et assurez-vous qu'il inclut le chemin d'accès complet – Brody

Répondre

2

os.listdir() répertorie uniquement le nom de fichier sans chemin. Sans chemin d'accès complet, shutil.copy() traite le fichier en fonction de votre répertoire de travail actuel et il n'y a pas de fichier aerofl03.pgn dans votre répertoire de travail actuel.

Ajoute le chemin à nouveau pour obtenir le chemin complet:

path = "C:\\Users\\Chess\\events\\" 
source = os.listdir(path) 

for filename in source: 
    fullpath = os.path.join(path, filename) 
    shutil.copy(fullpath, "E:\\events\\") 

Alors maintenant shutil.copy() est dit de copier C:\Users\Chess\events\aerofl03.pgn, au lieu de <CWD>\aerofl03.pgn.