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

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

Mary-Kate Olsen
リリース: 2024-12-05 09:10:13
オリジナル
754 人が閲覧しました

How Can I Access Static Files Inside a Python Package?

Python パッケージ内の静的ファイルにアクセスする方法

Python パッケージ内にあるファイルを読み取るには、いくつかの方法があります。利用可能なアプローチ。推奨される方法の 1 つは、Python 3.7 で導入された importlib.resources モジュールを利用することです。

from importlib import resources
from . import templates

inp_file = resources.files(templates) / 'temp_file'
# open the file using the file-like stream context manager
with inp_file.open("rt") as f:
    template = f.read()
ログイン後にコピー

このアプローチには、従来の pkg_resources モジュールに比べていくつかの利点があります。よりパフォーマンスが高く、より安全で、パス操作が不要で、標準ライブラリのみに依存します。

3.7 より前のバージョンの Python を使用している場合、または下位互換性のために、importlib_resources ライブラリをバックポートできます。

try:
    from importlib import resources
except ImportError:
    import importlib_resources

from . import templates

inp_file = resources.files(templates) / 'temp_file'
try:
    with inp_file.open("rb") as f:  # or "rt" as text file with universal newlines
        template = f.read()
except AttributeError:
    # Python < PY3.9, fall back to method deprecated in PY3.11.
    template = resources.read_text(templates, 'temp_file')
ログイン後にコピー

このコンテキストでは、resources.files() 関数は、ターゲット ファイルへのパスを表す PathLike オブジェクトを返します。 resource_name パラメータは、パス区切り文字なしでパッケージ内のファイル名を表すようになりました。現在のモジュール内のファイルにアクセスするには、パッケージ引数として __package__ を指定します (例: resource.read_text(__package__, 'temp_file'))。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート