Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah `os.listdir` Menyebabkan `FileNotFoundError` Apabila Membuka Fail?

Mengapakah `os.listdir` Menyebabkan `FileNotFoundError` Apabila Membuka Fail?

Barbara Streisand
Lepaskan: 2024-11-20 03:54:01
asal
878 orang telah melayarinya

Why Does `os.listdir` Cause `FileNotFoundError` When Opening Files?

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
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan