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
Susan Sarandonoriginal
2024-11-30 20:47:13260parcourir

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!!')

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!

Déclaration:
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