Python 標準ライブラリ zip ZIPアーカイブの圧縮と展開
      
      
      Publish date: 2021-08-09
      
        
      
    
    
      
    
    
    
    
      
    
    
    
    
    ライブラリzipfileを使うとZIPアーカイブの圧縮と展開を行えます。
ZIPファイルの圧縮
zipfile.ZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=True, compresslevel=None, *, strict_timestamps=True)
でZipFileオブジェクトを作成後、ファイルを追加してZIPファイルを作成する。
既存のファイルを追加する場合はwrite、
バイト配列からファイルを作成する場合はwritestrを使う。
import zipfile
with zipfile.ZipFile('./sample.zip', 'w') as f:
    f.write('./sample1.txt')
    f.write('./sample2.txt')
    f.write('./dir1/sample3.txt')
    f.writestr('sample4.txt', 'テストファイル'.encode('utf-8'))
    f.close()ZIPファイルの展開
- infolist アーカイブ内オブジェクト情報のリスト
 - namelist アーカイブ内オブジェクトの名称のリスト
 - getinfo(name) 名称を指定してアーカイブ内オブジェクトの情報を取得
 - read(name, pwd=None) 名称を指定してオブジェクトのバイト配列を取得
 - extractall(path=None, members=None, pwd=None) アーカイブの展開
 
with zipfile.ZipFile('./sample.zip', 'r') as f:
    print(f.infolist())
    print(f.namelist())
    print(f.getinfo("sample1.txt"))
    print(f.read('sample2.txt').decode())
    f.extractall('extracted')
    f.close()