python中gzip模塊的使用


gzip模塊能夠直接壓縮和解壓縮bytes-like類型的數據,同時也能實現對應格式文件的壓縮與解壓縮

一、數據壓縮與解壓縮

  • 壓縮

    • gzip.compress(data)

      • data:需要壓縮的bytes-like類型數據
      • compresslevel參數:可選,用數字0-9表示壓縮級別,默認最高壓縮級別9,0表示不壓縮
  • 解壓縮

    • gzip.decompress(data)

  • 示例:

    import gzip test_data = b'gzip test data' gzip_data = gzip.compress(test_data) # 壓縮數據
    ungz_data = gzip.decompress(gzip_data) #解壓縮數據
    print(gzip_data) #輸出b'\x1f\x8b\x08\x00\xddOa`\x02\xffK\xaf\xca,P(I-.QHI,I\x04\x00*\xfb\x85\x89\x0e\x00\x00\x00'
    print(ungz_data) #輸出b'gzip test data',和test_data一致

     

二、文件壓縮與解壓縮

  • gzip.open( filename, mode="rb")

    • 壓縮文件打開后,擁有普通文件對象一樣的方法,如read、readline、readlines、write、writelines等。
    • compresslevel參數:可選
    • 讀取內容,可以獲得解壓縮后的數據
    • 寫入內容,能夠完成對數據的壓縮
  • gzip.GzipFile()

    • 初始化對象的方法__init__:(self, filename=None, mode=None,compresslevel=_COMPRESS_LEVEL_BEST, fileobj=None, mtime=None)
    • 用法與gzip.open()類似,可傳入文件名或文件對象
  • 示例:

    #coding=utf-8
    import gzip def gz(filename): '''壓縮文件''' gz_filename = filename + '.tgz' #壓縮后文件名 f_ungz = open(filename,'rb') # 打開未壓縮文件對象
        f_gz = gzip.open(gz_filename,'wb') # 使用open函數創建壓縮文件對象
        # f_gz = gzip.GzipFile(gz_filename,'wb') 使用GzipFile類創建壓縮文件對象
        f_gz.writelines(f_ungz) #寫入壓縮內容
     f_ungz.close() f_gz.close() def ungz(gz_filename): '''解壓縮文件''' ungz_filename = gz_filename.replace('.tgz','').replace('.tar.gz','')# 解壓縮后文件名
        f_gz = gzip.GzipFile(gz_filename)#使用GzipFile類創建壓縮文件對象
        # f_gz = gzip.open(gz_filename) 使用open函數打開壓縮文件對象
        f_ungz = open(ungz_filename,'wb') #新建未壓縮文件對象
        f_ungz.writelines(f_gz) #寫入解壓縮后的文件內容
     f_ungz.close() f_gz.close()

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM