수색…


통사론

  • zipfile 가져 오기
  • 클래스 zip 파일. ZipFile ( 파일, 모드 = 'r', 압축 = ZIP_STORED, allowZip64 = True )

비고

ZIP 파일이 아닌 파일을 열려고하면 zipfile.BadZipFile 예외가 발생합니다.

Python 2.7에서는 철자가있는 zipfile.BadZipfile 오래된 이름은 Python 3.2 이상에서 새로운 이름과 함께 유지됩니다.

Zip 파일 열기

시작하려면 zipfile 모듈을 가져오고 파일 이름을 설정하십시오.

import zipfile
filename = 'zipfile.zip'

zip 아카이브로 작업하는 것은 파일 작업과 매우 유사하므로 zip 파일 을 열어 오브젝트를 작성하면 파일을 다시 닫기 전에 작업 할 수 있습니다.

zip = zipfile.ZipFile(filename)
print(zip)
# <zipfile.ZipFile object at 0x0000000002E51A90>
zip.close()

Python 2.7과 Python 3에서 3.2 이상인 경우 컨텍스트 관리자 with 사용할 수 있습니다. 파일을 "읽기"모드로 연 다음 파일 이름 목록을 인쇄합니다.

with zipfile.ZipFile(filename, 'r') as z:
    print(zip)
    # <zipfile.ZipFile object at 0x0000000002E51A90>

Zipfile 내용 검사

zip 파일의 내용을 검사하는 몇 가지 방법이 있습니다. printdir 을 사용하여 다양한 정보를 stdout 보낼 수 있습니다.

with zipfile.ZipFile(filename) as zip:
    zip.printdir()

    # Out:
    # File Name                                             Modified             Size
    # pyexpat.pyd                                    2016-06-25 22:13:34       157336
    # python.exe                                     2016-06-25 22:13:34        39576
    # python3.dll                                    2016-06-25 22:13:34        51864
    # python35.dll                                   2016-06-25 22:13:34      3127960
    # etc.

namelist 메서드를 사용하여 파일 이름 목록을 가져올 수도 있습니다. 여기에 간단히 목록을 인쇄합니다.

with zipfile.ZipFile(filename) as zip:
    print(zip.namelist())

# Out: ['pyexpat.pyd', 'python.exe', 'python3.dll', 'python35.dll', ... etc. ...]

namelist 대신 infolist 메서드를 호출 할 수 있습니다.이 메서드는 각 파일에 대한 추가 정보 (예 : 타임 스탬프 및 파일 크기)가 포함 된 ZipInfo 개체 목록을 반환합니다.

with zipfile.ZipFile(filename) as zip:
    info = zip.infolist()
    print(zip[0].filename)
    print(zip[0].date_time)
    print(info[0].file_size)

# Out: pyexpat.pyd
# Out: (2016, 6, 25, 22, 13, 34)
# Out: 157336

zip 파일 내용을 디렉토리로 추출하기

zip 파일의 모든 파일 내용 추출

import zipfile
with zipfile.ZipFile('zipfile.zip','r') as zfile:
    zfile.extractall('path')

단일 파일 추출 방법으로 추출 방법을 사용하려면 이름 목록과 경로를 입력 매개 변수로 사용합니다.

import zipfile
f=open('zipfile.zip','rb')
zfile=zipfile.ZipFile(f)
for cont in zfile.namelist():
    zfile.extract(cont,path)

새 아카이브 만들기

쓰기 모드로 새로운 아카이브 열기 zip 파일을 만들려면.

import zipfile
new_arch=zipfile.ZipFile("filename.zip",mode="w")

이 아카이브에 파일을 추가하려면 write () 메소드를 사용하십시오.

new_arch.write('filename.txt','filename_in_archive.txt') #first parameter is filename and second parameter is filename in archive by default filename will taken if not provided
new_arch.close()

아카이브에 바이트 문자열을 쓰려면 writestr () 메소드를 사용할 수 있습니다.

str_bytes="string buffer"
new_arch.writestr('filename_string_in_archive.txt',str_bytes)
new_arch.close()


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow