Maison >développement back-end >Tutoriel Python >Pourquoi est-ce que j'obtiens une « PermissionError : [Errno 13] Autorisation refusée » lors de l'enregistrement de fichiers ?
Autorisation refusée : dépannage de « PermissionError : [Errno 13] Autorisation refusée »
Lorsque vous essayez d'enregistrer un fichier dans un répertoire spécifié, vous peut rencontrer l'erreur « PermissionError : [Errno 13] Autorisation refusée ». Cette erreur suggère que le script ne dispose pas des autorisations nécessaires pour ouvrir le fichier à l'emplacement prévu.
Confusion entre les fichiers et les dossiers
Une raison courante de cette erreur est une erreur un chemin sélectionné pour un dossier au lieu d'un fichier spécifique. Lorsque vous utilisez la fonction requestdirectory pour sélectionner un répertoire, le chemin renvoyé représente un dossier, pas un fichier.
Pour résoudre ce problème, assurez-vous que la variable place_to_save représente avec précision le chemin complet du fichier souhaité, y compris le nom de fichier. Vérifiez la valeur du répertoire et du texte_sélectionné pour vérifier que vous les combinez correctement.
Exemple de code avec vérification
import os def download(): # ... same code as before directory = filedialog.askdirectory(parent=root, title="Choose where to save your movie") if not directory: return # User canceled the selection filename = selected_text place_to_save = os.path.join(directory, filename) if os.path.isfile(place_to_save): # File already exists, check if it's writable try: with open(place_to_save, 'wb') as f: pass except PermissionError: print("Insufficient permissions to overwrite existing file") else: # New file, create it and write to it with open(place_to_save, 'wb') as f: connect.retrbinary('RETR ' + selected_text, f.write)
Observations supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!