Fail Tidak Ditemui Ralat dalam Python Semasa Menggunakan os.listdir
Menyalakan pada fail dalam direktori menggunakan os.listdir() boleh mencetuskan FileNotFoundError, walaupun semasa fail wujud. Ralat ini berlaku 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 dilaksanakan, kod ini akan menjana FileNotFoundError untuk fail 'foo.txt', walaupun ia wujud dalam direktori yang ditentukan.
Masalahnya terletak pada fakta bahawa os.listdir() hanya mengembalikan bahagian nama fail, seperti 'foo.txt'. Walau bagaimanapun, fungsi open() memerlukan laluan penuh ke fail, termasuk laluan direktori, seperti 'E:/somedir/foo.txt'.
Untuk menyelesaikan isu ini, os.path.join( ) boleh digunakan untuk menambah laluan direktori kepada nama fail:
path = r'E:/somedir' for filename in os.listdir(path): with open(os.path.join(path, filename)) as f: # process the file
Blok dengan juga boleh digunakan untuk menutup fail secara automatik.
Atas ialah kandungan terperinci Mengapakah `os.listdir()` Menyebabkan `FileNotFoundError` dalam Python Apabila Membuka Fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!