파 이 썬 은 가방 에 있 는 데이터 파일 을 읽 습 니 다.
가방 에는 코드 가 읽 어야 할 데이터 파일 이 포함 되 어 있 습 니 다.너 는 가능 한 한 가장 편리 한 방식 으로 이 일 을 해 야 한다.
해결 방안
가방 에 있 는 파일 을 다음 과 같이 구성한다 고 가정 하 십시오.
mypackage/
__init__.py
somedata.dat
spam.py
현재 spam.py 파일 이 somedata.dat 파일 의 내용 을 읽 어야 한다 고 가정 합 니 다.다음 코드 로 완성 할 수 있 습 니 다.
# spam.py
import pkgutil
data = pkgutil.get_data(__package__, 'somedata.dat')
이 로 인해 발생 하 는 변 수 는 이 파일 의 원본 내용 을 포함 하 는 바이트 문자열 입 니 다.토론 하 다.
데이터 파일 을 읽 으 려 면 open()과 같은 내 장 된 I/O 기능 을 사용 하 는 코드 를 만 드 는 경향 이 있 을 수 있 습 니 다.하지만 이런 방법 에 도 문제 가 있다.
우선,하나의 가방 은 해석 기의 현재 작업 디 렉 터 리 에 대해 거의 통제 권 이 없다.따라서 프로 그래 밍 을 할 때 모든 I/O 작업 은 절대 파일 이름 을 사용 해 야 합 니 다.각 모듈 에 완전한 경로 가 있 는 가 포함 되 어 있 기 때 문 입 니 다.file__변 수 는 경로 가 불가능 한 것 은 아니 지만 복잡 하 다 는 것 을 알 수 있 습 니 다.
둘째,가방 은 보통.zip 또는.egg 파일 로 설치 되 어 있 습 니 다.이 파일 들 은 파일 시스템 의 일반 디 렉 터 리 처럼 저장 되 지 않 습 니 다.따라서 데이터 파일 을 포함 하 는 압축 파일 을 open()으로 조작 하려 고 합 니 다.작 동 하지 않 습 니 다.
pkgutil.get_data()함 수 는 데이터 파일 을 읽 는 고급 도구 로 가방 이 어떻게 설치 되 고 설치 되 는 지 상관 하지 않 습 니 다.파일 내용 을 바이트 문자열 로 되 돌려 주 는 작업 일 뿐 입 니 다.
get_data()의 첫 번 째 매개 변 수 는 가방 이름 을 포함 하 는 문자열 입 니 다.가방 이름 을 직접 사용 할 수도 있 고 특별한 변 수 를 사용 할 수도 있 습 니 다.예 를 들 어package__。두 번 째 매개 변 수 는 가방 안의 파일 의 상대 적 인 이름 입 니 다.필요 하 다 면 마지막 디 렉 터 리 가 가방 에 있 는 한 표준 유 닉 스 이름 을 사용 할 수 있 습 니 다.
이상 은 파 이 썬 이 가방 에 있 는 데이터 파일 의 상세 한 내용 을 읽 는 것 입 니 다.파 이 썬 이 데이터 파일 을 읽 는 것 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.