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!