FileNotFoundError apabila Membilas Lebih Fail dengan os.listdir
Apabila melelaran pada fail dalam direktori menggunakan os.listdir, ada kemungkinan untuk menemui FileNotFoundError walaupun fail itu wujud. Ini kerana os.listdir hanya mengembalikan nama fail, bukan laluan penuh ke fail.
import os path = r'E:/somedir' for filename in os.listdir(path): f = open(filename, 'r') ... # process the file
Dalam contoh ini, Python membuang FileNotFoundError walaupun fail itu wujud kerana nama fail hanya mengandungi nama fail, seperti 'foo.txt', bukannya laluan penuh, seperti 'E:/somedir/foo.txt'.
Untuk menyelesaikan isu ini, gunakan os.path.join untuk menambah laluan 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, disyorkan untuk menggunakan pengurus konteks dengan pernyataan untuk membuka fail, kerana ia memastikan fail ditutup dengan betul apabila selesai.
Atas ialah kandungan terperinci Mengapakah `os.listdir` Menyebabkan `FileNotFoundError` Apabila Membuka Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!