首頁 >後端開發 >Python教學 >如何存取Python套件中嵌入的靜態檔案?

如何存取Python套件中嵌入的靜態檔案?

Barbara Streisand
Barbara Streisand原創
2024-12-01 17:53:10315瀏覽

How to Access Static Files Embedded in Python Packages?

擷取Python 套件內的靜態檔案

問題:

問題:

問題:

<package>
  |-- <module>
  |-- templates
        |-- temp_file

問題:

如何擷取的檔案在Python 套件中,因為無法透過標準檔案路徑存取它方法?

套件結構:

考慮一個套件結構,其中模板儲存在嵌套的「templates」資料夾中:
from importlib import resources as impresources

resource_package = __name__
resource_path = "templates/temp_file"

try:
    inp_file = impresources.files(resource_package) / resource_path
    with inp_file.open("rb") as f:
        template = f.read()
except AttributeError:
    # Python < 3.9
    template = impresources.read_text(resource_package, resource_path)

解:

import pkg_resources

resource_package = __name__
resource_path = "/".join(("templates", "temp_file"))

template = pkg_resources.resource_string(resource_package, resource_path)

有幾種方法可以擷取檔案:

1.使用importlib.resources (Python 3.7 ):
  • 2.使用pkg_resources (setuptools):
詳細資料:importlib.resources 是首選方法,因為它更有效率、更直觀。 setuptools 不應該在執行時間要求中使用請記住在 setup.py 或 MANIFEST 中包含靜態檔案。

以上是如何存取Python套件中嵌入的靜態檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn