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

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

Barbara Streisand
發布: 2024-12-01 17:53:10
原創
362 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板