權限被拒絕:排除「權限錯誤:[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中文網其他相關文章!