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

Mengapakah `os.listdir()` Menyebabkan `FileNotFoundError` dalam Python Apabila Membuka Fail?

DDD
Lepaskan: 2024-12-07 14:22:13
asal
557 orang telah melayarinya

Why Does `os.listdir()` Cause `FileNotFoundError` in Python When Opening Files?

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

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan