Python 압축 파일 을 읽 고 쓰 는 방법
gzip 이나 bz2 형식의 압축 파일 을 읽 고 싶 습 니 다.
해결 방안
gzip
과 bz2
모듈 은 이 파일 들 을 쉽게 처리 할 수 있다.두 모듈 모두open()
함수 에 다른 실현 을 제공 하여 이 문 제 를 해결 했다.예 를 들 어 압축 파일 을 텍스트 로 읽 기 위해 이렇게 할 수 있 습 니 다.
# gzip compression
import gzip
with gzip.open('somefile.gz', 'rt') as f:
text = f.read()
# bz2 compression
import bz2
with bz2.open('somefile.bz2', 'rt') as f:
text = f.read()
유사 한 것 은 압축 데 이 터 를 쓰기 위해 이렇게 할 수 있 습 니 다.
# gzip compression
import gzip
with gzip.open('somefile.gz', 'wt') as f:
f.write(text)
# bz2 compression
import bz2
with bz2.open('somefile.bz2', 'wt') as f:
f.write(text)
위 와 같이 모든 I/O 작업 은 텍스트 모드 를 사용 하고 유 니 코드 의 인 코딩/디 코딩 을 실행 합 니 다.유사 한 것 은 바 이 너 리 데 이 터 를 조작 하려 면rb
또는wb
파일 모드 를 사용 하면 됩 니 다.토론 하 다.
대부분의 경우 압축 데 이 터 를 읽 고 쓰 는 것 은 매우 간단 하 다.그러나 주의해 야 할 것 은 정확 한 파일 모드 를 선택 하 는 것 이 매우 중요 하 다 는 것 이다.모드 를 지정 하지 않 으 면 기본 값 은 바 이 너 리 모드 입 니 다.이 럴 때 프로그램 이 텍스트 데 이 터 를 받 아들 이려 면 오류 가 발생 합 니 다.
gzip.open()
와bz2.open()
는 내 장 된open()
함수 와 같은 인 자 를 받 아들 이 는데encoding
,errors
,newline
등 을 포함한다.압축 데 이 터 를 쓸 때
compresslevel
이 선택 할 수 있 는 키워드 인 자 를 사용 하여 압축 단 계 를 지정 할 수 있 습 니 다.예 를 들 면:
with gzip.open('somefile.gz', 'wt', compresslevel=5) as f:
f.write(text)
기본 등급 은 9 이 고 가장 높 은 압축 등급 입 니 다.등급 이 낮 을 수록 성능 이 좋 지만 데이터 압축 정도 도 낮다.마지막 으로
gzip.open()
와bz2.open()
는 잘 알려 지지 않 은 기능 이 있 습 니 다.이미 존재 하고 바 이 너 리 모드 로 열 린 파일 에 작용 할 수 있 습 니 다.예 를 들 어 아래 코드 는 실행 가능 합 니 다.
import gzip
f = open('somefile.gz', 'rb')
with gzip.open(f, 'rt') as g:
text = g.read()
이렇게 하면gzip
과bz2
모듈 은 여러 종류의 파일 대상 에서 작업 할 수 있다.예 를 들 어 소켓,파이프 와 메모리 에 있 는 파일 등 이다.이상 은 Python 이 압축 파일 을 읽 고 쓰 는 방법 에 대한 상세 한 내용 입 니 다.Python 이 압축 파일 을 읽 고 쓰 는 방법 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.