Kebenaran Ditolak: Menyelesaikan masalah "PermissionError: [Errno 13] Kebenaran ditolak"
Apabila cuba menyimpan fail ke direktori tertentu, anda mungkin menghadapi ralat "PermissionError: [Errno 13] Permission denied." Ralat ini menunjukkan bahawa skrip tidak mempunyai kebenaran yang diperlukan untuk membuka fail di lokasi yang dimaksudkan.
Kekeliruan antara Fail dan Folder
Sebab biasa untuk ralat ini adalah tersilap laluan yang dipilih untuk folder dan bukannya fail tertentu. Apabila anda menggunakan fungsi askdirectory untuk memilih direktori, laluan yang dikembalikan mewakili folder, bukan fail.
Untuk menyelesaikan isu ini, pastikan pembolehubah place_to_save mewakili laluan penuh ke fail yang dikehendaki dengan tepat, termasuk nama fail. Semak nilai direktori dan selected_text untuk mengesahkan bahawa anda menggabungkannya dengan betul.
Sampel Kod dengan Pengesahan
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)
Pemerhatian Tambahan
Atas ialah kandungan terperinci Mengapa Saya Mendapat \'PermissionError: [Errno 13] Kebenaran dinafikan\' Apabila Menyimpan Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!