Heim >Backend-Entwicklung >Python-Tutorial >Wie behebe ich den „PermissionError: [Errno 13] Permission denied' beim Herunterladen von Dateien in Python?
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!