ホームページ >バックエンド開発 >Python チュートリアル >Python パッケージに埋め込まれた静的ファイルにアクセスするにはどうすればよいですか?

Python パッケージに埋め込まれた静的ファイルにアクセスするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 17:53:10317ブラウズ

How to Access Static Files Embedded in Python Packages?

Python パッケージ内の静的ファイルの取得

問題:

パッケージ化されたファイルを取得する方法Python パッケージ内 (標準のファイル パス経由ではアクセスできない場合)メソッド?

パッケージ構造:

テンプレートがネストされた「テンプレート」フォルダーに保存されるパッケージ構造を考えてみましょう:

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

解決策:

ファイル:

1. importlib.resources の使用 (Python 3.7 ):

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)

2. pkg_resources (setuptools) の使用:

import pkg_resources

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

template = pkg_resources.resource_string(resource_package, resource_path)

詳細:

  • importlib.resources は、より効率的で直感的であるため、推奨される方法です。
  • setuptools は実行時要件で使用しないでください
  • setup.py または MANIFEST に静的ファイルを忘れずに含めてください。

以上がPython パッケージに埋め込まれた静的ファイルにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。