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 이 압축 파일 을 읽 고 쓰 는 방법 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기