Membaca fail dalam pakej Python boleh mencabar, terutamanya apabila ia datang untuk mengakses fail statik yang bukan sebahagian daripada kod itu sendiri. Artikel ini meneroka dua kaedah untuk mencapai perkara ini: menggunakan modul pkg_resources dan modul importlib.resources yang lebih baharu.
Modul pkg_resources daripada pengedaran setuptools adalah tradisional pendekatan untuk mengakses sumber dalam pakej. Walau bagaimanapun, ia kurang berprestasi berbanding kaedah yang lebih baharu.
import pkg_resources # Resource package and path resource_package = __name__ resource_path = '/'.join(('templates', 'temp_file')) # Get the resource as a string or stream template = pkg_resources.resource_string(resource_package, resource_path) # or template = pkg_resources.resource_stream(resource_package, resource_path)
Untuk Python versi 3.7 dan ke atas, modul importlib.resources menyediakan cara yang lebih cekap dan intuitif untuk mengakses sumber.
from importlib import resources # Resource package (must be a package) resource_package = __name__ + '.templates' # Get the resource as a file object (or stream) inp_file = resources.files(resource_package) / 'temp_file' with inp_file.open("rt") as f: template = f.read()
Kaedah importlib.resources jauh lebih pantas daripada pkg_resources. Selain itu, ia lebih selamat dan lebih intuitif kerana ia bergantung pada pakej Python dan bukannya rentetan laluan. Untuk versi Python kurang daripada 3.7, perpustakaan importlib.resources yang diportportasi boleh digunakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Fail Statik dengan Cekap Dalam Pakej Python Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!