Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengakses Fail Statik Di Dalam Pakej Python?

Bagaimanakah Saya Boleh Mengakses Fail Statik Di Dalam Pakej Python?

Mary-Kate Olsen
Lepaskan: 2024-12-05 09:10:13
asal
727 orang telah melayarinya

How Can I Access Static Files Inside a Python Package?

Cara Mengakses Fail Statik Dalam Pakej Python

Untuk membaca fail yang terletak dalam pakej Python, terdapat beberapa pendekatan yang ada. Satu kaedah yang disyorkan melibatkan penggunaan modul importlib.resources yang diperkenalkan dalam Python 3.7.

from importlib import resources
from . import templates

inp_file = resources.files(templates) / 'temp_file'
# open the file using the file-like stream context manager
with inp_file.open("rt") as f:
    template = f.read()
Salin selepas log masuk

Pendekatan ini menawarkan beberapa kelebihan berbanding modul pkg_resources warisan. Ia lebih berprestasi, lebih selamat, tidak memerlukan manipulasi laluan dan bergantung semata-mata pada pustaka standard.

Bagi mereka yang menggunakan versi Python sebelum 3.7, atau untuk keserasian ke belakang, perpustakaan importlib_resources boleh dibawa ke belakang.

try:
    from importlib import resources
except ImportError:
    import importlib_resources

from . import templates

inp_file = resources.files(templates) / 'temp_file'
try:
    with inp_file.open("rb") as f:  # or "rt" as text file with universal newlines
        template = f.read()
except AttributeError:
    # Python < PY3.9, fall back to method deprecated in PY3.11.
    template = resources.read_text(templates, 'temp_file')
Salin selepas log masuk

Dalam konteks ini, fungsi resources.files() mengembalikan objek PathLike yang mewakili laluan ke fail sasaran. Parameter resource_name kini mewakili nama fail dalam pakej, tanpa sebarang pemisah laluan. Untuk mengakses fail dalam modul semasa, tentukan __package__ sebagai argumen pakej (cth., resources.read_text(__package__, 'temp_file')).

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Fail Statik Di Dalam Pakej Python?. 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