Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Semak Kewujudan Fail dalam Python Tanpa Menggunakan Pengecualian?

Bagaimanakah Saya Boleh Semak Kewujudan Fail dalam Python Tanpa Menggunakan Pengecualian?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-21 03:18:13313semak imbas

How Can I Check for File Existence in Python Without Using Exceptions?

Cara Mengesahkan Kewujudan Fail Tanpa Pengecualian

Soalan:

Bagaimana saya boleh menentukan sama ada fail wujud tanpa menggunakan pengecualian pengendalian?

Jawapan:

Pendekatan cuba-kecuali:

Semasa menggunakan blok cuba-kecuali untuk menyemak fail kewujudan mungkin kelihatan intuitif, ia memperkenalkan risiko keselamatan. Katakan anda bercadang untuk membuka fail selepas menyemak. Dalam kes itu, terdapat kemungkinan fail itu boleh dipadamkan atau diubah suai antara semakan dan operasi terbuka.

os.path.isfile:

Untuk kes di mana fail segera pembukaan tidak perlu, anda boleh memanfaatkan os.path.isfile. Fungsi ini menilai jika laluan yang ditentukan menghala ke fail sedia ada, termasuk yang diakses melalui pautan simbolik.

import os.path
os.path.isfile(fname)

Pendekatan pathlib (Python 3.4 ):

Python 3.4 memperkenalkan pathlib untuk pendekatan interaksi sistem fail berorientasikan objek.

Untuk menyemak fail kewujudan:

from pathlib import Path

my_file = Path("/path/to/file")
if my_file.is_file():
    # file exists

Untuk direktori:

if my_file.is_dir():
    # directory exists

Untuk mengesahkan kewujudan laluan tanpa mengira jenis fail:

if my_file.exists():
    # path exists

Selain itu, anda boleh menggunakan penyelesaian (strict=True) dalam blok percubaan untuk semakan yang lebih tepat:

try:
    my_abs_path = my_file.resolve(strict=True)
except FileNotFoundError:
    # doesn't exist
else:
    # exists

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak Kewujudan Fail dalam Python Tanpa Menggunakan Pengecualian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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