權限被拒絕:解決Python 檔案處理中的「Errno 13」錯誤
在Python 中處理檔案時,您可能會遇到「 PermissionError: [Errno 13] 權限被拒絕」異常。當您嘗試存取或修改目前使用者帳戶缺乏必要權限的檔案時,就會發生這種情況。
在您描述的特定情況下,您嘗試使用 open() 函數下載文件,但收到「PermissionError」。這是因為您為函數提供的檔案路徑是資料夾,而不是特定檔案。
要解決此問題,您需要確保 place_to_save 變數指向有效的檔案路徑。您可以使用 isfile() 函數驗證路徑是否引用檔案而不是資料夾來執行此操作。
這是程式碼的更新版本,其中包括必要的檢查:
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!!')
透過新增此檢查,您可以透過確保始終使用有效的檔案路徑來防止「PermissionError」發生。
以上是如何修復Python下載檔案時出現「PermissionError: [Errno 13] Permission returned」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!