Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

gzip 파일(gzip)에 대한 Python 지원

<시간/>

GZip 응용 프로그램은 파일의 압축 및 압축 해제에 사용됩니다. GNU 프로젝트의 일부입니다. Python의 gzip 모듈은 GZip 애플리케이션에 대한 인터페이스입니다. gzip 데이터 압축 알고리즘 자체는 zlib 모듈을 기반으로 합니다.

gzip 모듈에는 GzipFile 클래스의 정의와 해당 메서드가 포함되어 있습니다. 또한 편리한 기능인 open(), compress() 및 decompress()를 포함합니다.

압축 및 압축 해제를 수행하는 가장 쉬운 방법은 위에서 언급한 기능을 사용하는 것입니다.

열기()

이 함수는 바이너리 또는 텍스트 모드에서 gzip 압축 파일을 열고 실제 파일, 문자열 또는 바이트 개체일 수 있는 개체와 같은 파일을 반환합니다. 기본적으로 파일은 바이너리 데이터를 읽는 'rb' 모드에서 열리지만 이 함수에 대한 모드 매개변수는 아래 나열된 다른 모드를 사용할 수 있습니다.

이진 모드:'r', 'rb', 'a', 'ab', 'w', 'wb', 'x', 'xb'텍스트 모드:'rt', 'at', 'wt ' 또는 'xt'

이 함수는 또한 허용 가능한 값이 0에서 9 사이인 압축 수준을 정의합니다. 파일이 텍스트 모드에서 열리면 GzipFile 개체가 TextIOWrapper 개체에 래핑됩니다.

압축()

이 함수는 인수로 제공된 데이터에 압축을 적용하고 압축된 바이트 개체를 반환합니다. 기본 압축 수준은 9입니다.

압축 해제()

이 함수는 바이트 개체의 압축을 풀고 압축되지 않은 데이터를 반환합니다.

다음 예는 압축된 데이터를 기록하여 gzip 파일을 생성합니다.

>>> import gzip>
>> data =b'Python - 배터리 포함'>>> gzip.open("test.txt.gz", "wb")을 f:f.write(data) 

현재 디렉토리에 "test.txt.gz" 파일이 생성됩니다. 이 gzip 아카이브에는 압축 해제 유틸리티를 사용하여 확인할 수 있는 "test.txt"가 포함되어 있습니다.

이 압축 파일을 프로그래밍 방식으로 읽으려면

>>> gzip.open("test.txt.gz", "rb") as f:data =f.read()>>> datab'Python - 배터리 포함'

기존 파일을 gzip 아카이브로 압축하려면 그 안의 텍스트를 읽고 바이트 배열로 변환합니다. 이 bytearray 객체는 gzip 파일에 기록됩니다. 아래 예에서는 'zen.txt' 파일이 현재 디렉토리에 있다고 가정합니다.

fp =open("zen.txt","rb")>>> data =fp.read()>>> bindata =bytearray(data)>>> gzip.open("zen.txt.gz 포함) ", "wb") f:f.write(bindata)

gzip 아카이브에서 압축되지 않은 파일을 검색하려면

>>> fp =open("zen1.txt", "wb")>>> f:bindata =f.read()로 gzip.open("zen.txt.gz", "rb") 사용>>> fp.write(bindata)>>> fp.close()

위 코드는 'zen.txt'와 동일한 데이터를 포함하는 현재 디렉토리에 'zen1.txt'를 생성합니다.

이러한 편의 기능 외에도 gzip 모듈에는 compress() 및 decompress() 메서드를 정의하는 GzipFile 클래스도 있습니다. 이 클래스의 생성자는 위와 같은 의미로 파일, 모드 및 압축 수준 인수를 사용합니다.

mode 매개변수가 'w', 'wb' 또는 'wt'로 지정되면 GipFile 객체는 주어진 데이터를 압축하고 gzip 파일에 쓰기 위해 write() 메서드를 제공합니다.

>>> f =gzip.GzipFile("testnew.txt.gz","wb")>>> data =b'Python - 배터리 포함'>>> f.write(data)>>> f. 닫기()

그러면 testnew.txt.gz 파일이 생성됩니다. 유틸리티를 사용하여 압축을 풀면 'Python – Batteries included' 텍스트와 함께 testnew.txt가 포함되어 있는지 확인할 수 있습니다.

GzipFile 객체를 이용하여 gzip 파일의 압축을 풀려면 mode 매개변수에 'rb' 값으로 생성하고 read() 메소드로 압축되지 않은 데이터를 읽어옵니다.

>>> f =gzip.GzipFile("testnew.txt.gz","rb")>>> data =f.read()>>> datab'파이썬 - 배터리 포함'

이 기사에서는 Python의 gzip 모듈로 gzip 라이브러리를 구현하는 방법을 배웠습니다.