Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Saya Mendapat \'PermissionError: [Errno 13] Kebenaran dinafikan\' Apabila Menyimpan Fail?

Mengapa Saya Mendapat \'PermissionError: [Errno 13] Kebenaran dinafikan\' Apabila Menyimpan Fail?

Barbara Streisand
Barbara Streisandasal
2024-12-03 14:10:13266semak imbas

Why Am I Getting a

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

  • Pastikan akaun pengguna yang menjalankan skrip mempunyai kebenaran yang mencukupi untuk menulis ke direktori sasaran.
  • Semak sama ada mana-mana perisian antivirus atau firewall menyekat akses kepada fail.
  • Jika semuanya gagal, anda boleh cuba menjalankan skrip dengan keistimewaan pentadbiran untuk memberikannya kebenaran yang dinaikkan buat sementara waktu.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn