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 중국어 웹사이트의 기타 관련 기사를 참조하세요!