Maison > développement back-end > Tutoriel Python > Comment corriger l'erreur « PermissionError : [Errno 13] Autorisation refusée » lors du téléchargement de fichiers en Python ?

Comment corriger l'erreur « PermissionError : [Errno 13] Autorisation refusée » lors du téléchargement de fichiers en Python ?

Susan Sarandon
Libérer: 2024-11-30 20:47:13
original
187 Les gens l'ont consulté

How to Fix the

Autorisation refusée : résolution de l'erreur "Errno 13" dans la gestion des fichiers Python

Lorsque vous travaillez avec des fichiers en Python, vous pouvez rencontrer le message " PermissionError : [Errno 13] Exception "Autorisation refusée". Cela se produit lorsque vous tentez d'accéder ou de modifier un fichier pour lequel votre compte utilisateur actuel ne dispose pas des autorisations nécessaires.

Dans le cas spécifique que vous avez décrit, vous essayez de télécharger un fichier à l'aide de la fonction open(), mais recevoir une « PermissionError ». En effet, vous fournissez à la fonction un chemin de fichier qui est un dossier, plutôt qu'un fichier spécifique.

Pour résoudre ce problème, vous devez vous assurer que la variable place_to_save pointe vers un chemin de fichier valide. Vous pouvez le faire en utilisant la fonction isfile() pour vérifier que le chemin fait référence à un fichier plutôt qu'à un dossier.

Voici une version mise à jour de votre code qui inclut les vérifications nécessaires :

import os

def download():
    # get selected line index
    index = films_list.curselection()[0]
    # get the line's text
    selected_text = films_list.get(index)
    directory = filedialog.askdirectory(parent=root, 
                                        title="Choose where to save your movie")
    place_to_save = directory + '/' + selected_text
    
    # Verify that the path points to a file
    if not os.path.isfile(place_to_save):
        raise PermissionError("Permission denied: {}".format(place_to_save))
    
    with open(place_to_save, 'wb') as file:
        connect.retrbinary('RETR ' + selected_text, file.write)
    tk.messagebox.showwarning('File downloaded', 
                              'Your movie has been successfully downloaded!' 
                              '\nAnd saved where you asked us to save it!!')
Copier après la connexion

En ajoutant cette vérification, vous pouvez empêcher l'apparition de "PermissionError" en vous assurant que vous travaillez toujours avec des chemins de fichiers valides.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal