Heim >Backend-Entwicklung >Python-Tutorial >Wie behebe ich den „PermissionError: [Errno 13] Permission denied' beim Herunterladen von Dateien in Python?

Wie behebe ich den „PermissionError: [Errno 13] Permission denied' beim Herunterladen von Dateien in Python?

Susan Sarandon
Susan SarandonOriginal
2024-11-30 20:47:13260Durchsuche

How to Fix the

Berechtigung verweigert: Behebung des Fehlers „Errno 13“ bei der Python-Dateiverarbeitung

Beim Arbeiten mit Dateien in Python kann es vorkommen, dass „ Ausnahme „PermissionError: [Errno 13] Berechtigung verweigert“. Dies geschieht, wenn Sie versuchen, auf eine Datei zuzugreifen oder diese zu ändern, für die Ihr aktuelles Benutzerkonto nicht über die erforderlichen Berechtigungen verfügt.

In dem von Ihnen beschriebenen speziellen Fall versuchen Sie, eine Datei mit der Funktion open() herunterzuladen, aber Erhalt eines „PermissionError“. Dies liegt daran, dass Sie der Funktion einen Dateipfad bereitstellen, bei dem es sich um einen Ordner und nicht um eine bestimmte Datei handelt.

Um dieses Problem zu beheben, müssen Sie sicherstellen, dass die Variable „place_to_save“ auf einen gültigen Dateipfad verweist. Sie können dies tun, indem Sie die Funktion isfile() verwenden, um zu überprüfen, ob der Pfad auf eine Datei und nicht auf einen Ordner verweist.

Hier ist eine aktualisierte Version Ihres Codes, die die erforderlichen Prüfungen enthält:

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

Durch das Hinzufügen dieser Prüfung können Sie das Auftreten des „PermissionError“ verhindern, indem Sie sicherstellen, dass Sie immer mit gültigen Dateipfaden arbeiten.

Das obige ist der detaillierte Inhalt vonWie behebe ich den „PermissionError: [Errno 13] Permission denied' beim Herunterladen von Dateien in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn