> 백엔드 개발 > 파이썬 튜토리얼 > Python 패키지 내에서 정적 파일을 효율적으로 읽으려면 어떻게 해야 합니까?

Python 패키지 내에서 정적 파일을 효율적으로 읽으려면 어떻게 해야 합니까?

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

How Can I Efficiently Read Static Files Within My Python Packages?

Python 패키지 내에서 정적 파일 읽기

소개

Python 패키지 내에서 파일을 읽는 것은 어려울 수 있으며, 특히 다음과 같은 정적 파일에 액세스할 때 더욱 그렇습니다. 코드 자체의 일부가 아닙니다. 이 기사에서는 이를 달성하기 위한 두 가지 방법, 즉 pkg_resources 모듈과 최신 importlib.resources 모듈을 살펴봅니다.

방법 1: setuptools에서 pkg_resources 사용

setuptools 배포판의 pkg_resources 모듈은 전통적인 패키지 내의 리소스에 액세스하기 위한 접근 방식입니다. 그러나 새로운 방법보다 성능이 떨어집니다.

import pkg_resources

# Resource package and path
resource_package = __name__
resource_path = '/'.join(('templates', 'temp_file'))

# Get the resource as a string or stream
template = pkg_resources.resource_string(resource_package, resource_path)
# or
template = pkg_resources.resource_stream(resource_package, resource_path)
로그인 후 복사

방법 2: Python에 importlib.resources 사용 >= 3.7

Python 버전 3.7 이상의 경우 importlib.resources 모듈 리소스에 액세스하는 보다 효율적이고 직관적인 방법을 제공합니다.

from importlib import resources

# Resource package (must be a package)
resource_package = __name__ + '.templates'

# Get the resource as a file object (or stream)
inp_file = resources.files(resource_package) / 'temp_file'
with inp_file.open("rt") as f:
    template = f.read()
로그인 후 복사

성능 및 호환성 고려 사항

importlib.resources 방법은 pkg_resources보다 훨씬 빠릅니다. 또한 경로 문자열이 아닌 Python 패키지에 의존하기 때문에 더 안전하고 직관적입니다. 3.7 미만의 Python 버전의 경우 백포트된 importlib.resources 라이브러리를 사용할 수 있습니다.

위 내용은 Python 패키지 내에서 정적 파일을 효율적으로 읽으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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