想象一下您的 Python 包包含您想要从您的 Python 包中访问的模板文本文件程序。指定这些文件的路径时,有必要处理包结构。
如果不考虑向后兼容性(即,您使用 Python 3.9 或更高版本),利用 importlib.resources 模块。
from importlib import resources as impresources from . import templates inp_file = impresources.files(templates) / 'temp_file' with inp_file.open("rt") as f: template = f.read()
对于低于3.9的Python版本,请考虑使用setuptools中的pkg_resources模块
import pkg_resources # Could be a dot-separated package/module name or a "Requirement" resource_package = __name__ resource_path = '/'.join(('templates', 'temp_file')) # Do not use os.path.join() template = pkg_resources.resource_string(resource_package, resource_path) # or for a file-like stream: template = pkg_resources.resource_stream(resource_package, resource_path)
在包层次结构中找到您的模板:
<your-package> +--<module-asking-for-the-file> +--templates/ +--temp_file
引用模板文件使用方法:
选项 1(导入lib.resources):
from . import templates inp_file = impresources.files(templates) / 'temp_file'
选项 2 (pkg_resources):
resource_path = '/'.join(('templates', 'temp_file')) template = pkg_resources.resource_string(__name__, resource_path)
以上是如何访问Python包中的静态文件?的详细内容。更多信息请关注PHP中文网其他相关文章!