Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menyelesaikan ralat Python: FileNotFoundError: [Errno 2] Tiada fail atau direktori sedemikian?

Bagaimana untuk menyelesaikan ralat Python: FileNotFoundError: [Errno 2] Tiada fail atau direktori sedemikian?

PHPz
PHPzasal
2023-08-26 10:55:5611286semak imbas

如何解决Python报错:FileNotFoundError: [Errno 2] No such file or directory?

Bagaimana untuk menyelesaikan ralat Python: FileNotFoundError: [Errno 2] Tiada fail atau direktori sedemikian?

Semasa menulis program Python, anda sering menghadapi pelbagai mesej ralat. Salah satu ralat biasa ialah FileNotFoundError: [Errno 2] Tiada fail atau direktori sedemikian. Ralat ini biasanya berlaku apabila cuba membuka atau membaca fail dan bermakna Python tidak dapat mencari fail atau direktori yang ditentukan. Dalam artikel ini, kami akan membincangkan punca ralat ini dan memberikan penyelesaian.

  1. Semak Laluan Fail
    Pertama, kita perlu menyemak sama ada laluan fail yang dinyatakan dalam kod itu wujud. Ini boleh dicapai dengan mencetak atau menyahpepijat atur cara. Pastikan laluan penuh ke fail adalah betul dan fail itu wujud dalam laluan yang ditentukan.

Contoh kod:

import os

file_path = 'path/to/file.txt'

if not os.path.exists(file_path):
    print("File does not exist.")
else:
    # 执行打开文件的操作
    with open(file_path, 'r') as file:
        # 执行文件读取操作
        data = file.read()
        print(data)

Dalam contoh di atas, kami mula-mula menyemak sama ada fail itu wujud menggunakan fungsi exists() modul os. Jika fail tidak wujud, mesej gesaan "Fail tidak wujud." Jika tidak, fail dibuka dan kandungannya dibaca.

  1. Semak direktori kerja
    Punca lain yang mungkin ialah kod itu cuba mencari fail dalam direktori kerja yang salah. Python akan mempunyai direktori kerja semasa semasa menjalankan program, yang merupakan garis dasar untuk jurubahasa untuk melaksanakan kod. Jika laluan fail adalah relatif dan bukannya mutlak, laluan adalah relatif kepada direktori kerja semasa.

Contoh kod:

import os

file_name = 'file.txt'

if not os.path.exists(file_name):
    cwd = os.getcwd()
    print(f"File '{file_name}' does not exist in current working directory: {cwd}")
else:
    # 执行打开文件的操作
    with open(file_name, 'r') as file:
        # 执行文件读取操作
        data = file.read()
        print(data)

Dalam contoh di atas, kami mula-mula menggunakan fungsi getcwd() modul os untuk mendapatkan direktori kerja semasa. Kami kemudian membandingkan direktori itu dengan nama fail yang ditentukan dalam laluan relatif. Jika fail tidak wujud, mesej yang menunjukkan bahawa fail tidak wujud dalam direktori kerja semasa akan dicetak.

  1. Semak kebenaran fail
    Kadangkala, ralat mungkin disebabkan oleh kebenaran yang tidak mencukupi pada fail. Sebelum cuba membuka atau membaca fail, pastikan anda mempunyai kebenaran yang sesuai pada fail tersebut.

Contoh kod:

import os

file_path = 'path/to/file.txt'

if not os.access(file_path, os.R_OK):
    print("You don't have permission to read the file.")
else:
    # 执行打开文件的操作
    with open(file_path, 'r') as file:
        # 执行文件读取操作
        data = file.read()
        print(data)

Dalam contoh di atas, kami menggunakan fungsi access() modul os untuk menyemak sama ada terdapat kebenaran untuk membaca fail. Jika tiada kebenaran, mesej gesaan "Anda tidak mempunyai kebenaran untuk membaca fail itu." Jika tidak, fail dibuka dan kandungannya dibaca.

The FileNotFoundError: [Errno 2] Tiada ralat fail atau direktori sedemikian yang berlaku semasa menulis program Python mungkin disebabkan oleh ralat laluan fail, ralat direktori atau kebenaran fail yang tidak mencukupi. Dengan menyemak laluan fail, direktori kerja dan kebenaran fail, kami boleh menyelesaikan isu ini dan membaca fail seperti biasa. Saya harap artikel ini dapat membantu anda menyelesaikan masalah ini dalam pelaporan ralat Python.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan ralat Python: FileNotFoundError: [Errno 2] Tiada fail atau direktori sedemikian?. 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