> 백엔드 개발 > 파이썬 튜토리얼 > Python 패키지 내의 정적 파일에 어떻게 액세스할 수 있나요?

Python 패키지 내의 정적 파일에 어떻게 액세스할 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-12-05 09:10:13
원래의
752명이 탐색했습니다.

How Can I Access Static Files Inside a Python Package?

Python 패키지 내의 정적 파일에 액세스하는 방법

Python 패키지 내에 있는 파일을 읽으려면 몇 가지 방법이 있습니다. 접근이 가능합니다. 권장되는 방법 중 하나는 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 객체를 반환합니다. 이제 resources_name 매개변수는 경로 구분 기호 없이 패키지 내의 파일 이름을 나타냅니다. 현재 모듈 내의 파일에 액세스하려면 __package__를 패키지 인수로 지정합니다(예: resources.read_text(__package__, 'temp_file')).

위 내용은 Python 패키지 내의 정적 파일에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿