2017-08-29 2 views
0

J'essaie de copier des fichiers de mon répertoire actuel vers un dossier nouvellement créé dans mon répertoire actuel. Le nom du dossier est la date et l'heure exactes d'exécution du script à l'aide du module de temps. J'essaie d'utiliser le module shutil car c'est ce que tout le monde semble dire qui est le meilleur pour copier des fichiers d'un endroit à un autre, mais je reçois toujours une erreur d'autorisation. J'ai collé le code et l'erreur ci-dessous. Aucune suggestion? Merci d'avance.Copie de fichiers à l'aide de Python

import os 
import time 
from shutil import copyfile 

oldir = os.getcwd() 
print(oldir) 
timestr = time.strftime("%Y%m%d-%H%M%S") 
print('timestr: {}'.format(timestr)) 
newdir = os.path.join(oldir + "\\" + timestr) 
print(newdir) 


for filename in os.listdir(os.getcwd()): 
    if filename.startswith("green"): 
     print (filename) 
     copyfile(oldir, newdir) 

erreur:

Traceback (most recent call last): 
    File "\\directory\directory\Testing1.py", line 16, in <module> 
    copyfile(oldir, newdir) 
    File "C:\Python36-32\lib\shutil.py", line 120, in copyfile 
    with open(src, 'rb') as fsrc: 
PermissionError: [Errno 13] Permission denied: '\\\\directory\\directory' 
+2

En effet, au lieu de copier un fichier, vous essayez de copier le ** répertoire ** actuel lui-même dans son sous-répertoire. –

Répondre

1

Vous devez d'abord créer le répertoire, puis lorsque vous effectuez la copie, utilisez le chemin d'accès complet à la fois le fichier de début et de fin puis fichier

import os 
import time 
from shutil import copyfile 

oldir = os.getcwd() 
print(oldir) 
timestr = time.strftime("%Y%m%d-%H%M%S") 
print('timestr: {}'.format(timestr)) 
newdir = os.path.join(oldir + "\\" + timestr) 
print(newdir) 

if not os.path.exists(newdir): 
    os.makedirs(newdir) 

for filename in os.listdir(os.getcwd()): 
    if filename.startswith("green"): 
     print (filename) 
     copyfile(oldir+"\\"+filename, newdir + "\\" + filename) 
+0

Comme indiqué, vous ne pouvez pas copier sans vérifier que le répertoire existe ou vous le créez d'abord @Matt – deaspo