Kebenaran Ditolak: Menyelesaikan Ralat "Errno 13" dalam Pengendalian Fail Python
Apabila bekerja dengan fail dalam Python, anda mungkin menghadapi " PermissionError: [Errno 13] Kebenaran ditolak" pengecualian. Ini berlaku apabila anda cuba mengakses atau mengubah suai fail yang akaun pengguna semasa anda tidak mempunyai kebenaran yang diperlukan.
Dalam kes khusus yang anda nyatakan, anda cuba memuat turun fail menggunakan fungsi open(), tetapi menerima "PermissionError." Ini kerana anda menyediakan fungsi dengan laluan fail yang merupakan folder, bukannya fail tertentu.
Untuk menyelesaikan isu ini, anda perlu memastikan pembolehubah place_to_save menghala ke laluan fail yang sah. Anda boleh melakukannya dengan menggunakan fungsi isfile() untuk mengesahkan bahawa laluan itu merujuk kepada fail, bukannya folder.
Berikut ialah versi terkini kod anda yang merangkumi semakan yang diperlukan:
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!!')
Dengan menambahkan semakan ini, anda boleh menghalang "PermissionError" daripada berlaku dengan memastikan anda sentiasa bekerja dengan laluan fail yang sah.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'PermissionError: [Errno 13] Kebenaran dinafikan\' Semasa Memuat Turun Fail dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!