首頁 > 後端開發 > Python教學 > 如何修復Python下載檔案時出現「PermissionError: [Errno 13] Permission returned」?

如何修復Python下載檔案時出現「PermissionError: [Errno 13] Permission returned」?

Susan Sarandon
發布: 2024-11-30 20:47:13
原創
186 人瀏覽過

How to Fix the

權限被拒絕:解決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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板