à l'aide de shutil.copyfile-je obtenir un Python IOError: [Errno 13] le refus d'une Autorisation:
J'ai du code python à l'aide de shutil.copyfile:
import os
import shutil
src='C:\Documents and Settings\user\Desktop\FilesPy'
des='C:\Documents and Settings\user\Desktop\\tryPy\Output'
x=os.listdir(src)
a=os.path.join(src,x[1])
shutil.copyfile(a,des)
print a
Il me donne une erreur:
IOError: [Errno 13] Permission denied: 'C:\\Documents and Settings\\user\\Desktop\\tryPy\\Output'
Pourquoi n'ai-je pas la permission de copier le fichier?
shutil.copyfile sera exécuter avec les autorisations de l'utilisateur qui a exécuté le script. Exécuter le script python à l'aide de sudo ou l'exécuter en tant que root ou utilisez une autre bibliothèque qui peut faire une copie et de l'élever lui-même à la racine, si nécessaire.
Vous pouvez voir cette solution : https://stackoverflow.com/a/53894504/9533909 résolu mon problème
Vous pouvez voir cette solution : https://stackoverflow.com/a/53894504/9533909 résolu mon problème
OriginalL'auteur DrDark | 2012-06-30
Vous devez vous connecter pour publier un commentaire.
De la la documentation de
shutil.copyfile
:Donc je suppose que vous devez soit utiliser
shutil.copie
ou ajouter le nom du fichier àdes
:Je ne suis pas sûr de la raison, mais qui veut probablement dire qu'il ne peut pas trouver le
Output
dossier. Essayezopen('C:\\Documents and Settings\\user\\Desktop\\tryPy\\Output\\blatwo.docx', 'w')
: ça va produire la même erreur?le truc, c'est que le chemin que vous mantioned est le dossier de sortie, donc c'est un peu bizarre qu'il dit qu'il ne peut pas trouver le fichier ou le répertoire. vous avez une idée de quoi faire ? : O
vérifiez que le dossier existe et que son nom n'a pas de caractères spéciaux. C'est tout Ican penser pour l'instant. Si cela n'aide pas, peut-être poster une nouvelle question? avec les code et le message d'erreur
OriginalL'auteur Lev Levitsky
Je vous conseille plutôt d'utiliser le shutil.copyfile plutôt que shutil.copie si vous le pouvez.
Avec shutil.copyfile, vous devez tenir compte de métadonnées telles que la permission d'écriture.
OriginalL'auteur White
J'ai essayé toutes les choses ici, mais le problème avec mon code concernant l'autorisation de le dossier de destination. J'ai créé ma propre fonction pour la création de dir,
Au lieu de 777, plus tard, j'ai utilisé "0o777' la valeur octale, et plus tard utilisé
shutil.copyfile(target_file,dest_file)
et cela a fonctionné !Espère que cela aide quelqu'un, qui est le premier de la création de la dir et ensuite de copier le fichier.
OriginalL'auteur Ravi Bhanushali