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()
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')
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!