首頁 >後端開發 >Python教學 >為什麼我在儲存檔案時收到「PermissionError: [Errno 13] Permission returned」?

為什麼我在儲存檔案時收到「PermissionError: [Errno 13] Permission returned」?

Barbara Streisand
Barbara Streisand原創
2024-12-03 14:10:13256瀏覽

Why Am I Getting a

權限被拒絕:排除「權限錯誤:[Errno 13]權限被拒絕」

嘗試將檔案儲存到指定目錄時,您可能會遇到錯誤「PermissionError:[Errno 13]權限被拒絕」。此錯誤表示腳本缺乏在預期位置開啟檔案所需的權限。

檔案和資料夾之間的混淆

此錯誤的常見原因是誤操作資料夾而不是特定檔案的選取路徑。當您使用askdirectory函數選擇目錄時,傳回的路徑代表一個資料夾,而不是一個檔案。

要解決此問題,請確保 place_to_save 變數準確表示所需檔案的完整路徑,包括檔案名稱。檢查directory和selected_text的值以驗證您是否正確組合它們。

有驗證的程式碼範例

import os

def download():
    # ... same code as before
    directory = filedialog.askdirectory(parent=root, title="Choose where to save your movie")
    if not directory:
        return  # User canceled the selection

    filename = selected_text
    place_to_save = os.path.join(directory, filename)

    if os.path.isfile(place_to_save):
        # File already exists, check if it's writable
        try:
            with open(place_to_save, 'wb') as f:
                pass
        except PermissionError:
            print("Insufficient permissions to overwrite existing file")
    else:
        # New file, create it and write to it
        with open(place_to_save, 'wb') as f:
            connect.retrbinary('RETR ' + selected_text, f.write)

其他觀察

  • 確保執行腳本的使用者帳戶有足夠的權限寫入目標目錄。
  • 檢查是否有任何防毒或防火牆軟體阻止存取該檔案。
  • 如果一切都失敗,您可以嘗試使用管理權限來執行該腳本,以暫時授予其提升的權限。

以上是為什麼我在儲存檔案時收到「PermissionError: [Errno 13] Permission returned」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn