Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah `os.listdir` Menyebabkan `FileNotFoundError` Apabila Membuka Fail dalam Python?
Dalam Python, semasa melelakan fail dalam direktori menggunakan os.listdir, pengguna mungkin menghadapi FileNotFoundError. Ini kerana os.listdir hanya mengembalikan nama fail, bukan laluan penuh.
Pertimbangkan kod berikut:
import os path = r'E:/somedir' for filename in os.listdir(path): f = open(filename, 'r')
Apabila menjalankan kod ini, Python akan menaikkan FileNotFoundError, walaupun fail wujud. Ini kerana open menjangkakan laluan penuh ke fail, iaitu 'E:/somedir/foo.txt' apabila berurusan dengan fail 'foo.txt'.
Untuk menyelesaikan isu ini, gunakan os.path .join untuk menambah direktori ke nama fail:
path = r'E:/somedir' for filename in os.listdir(path): with open(os.path.join(path, filename)) as f: # process the file
Selain itu, kod boleh menutup fail secara automatik menggunakan blok dengan.
Atas ialah kandungan terperinci Mengapakah `os.listdir` Menyebabkan `FileNotFoundError` Apabila Membuka Fail dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!