欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python模塊zipfile原理及使用方法詳解

 更新時間:2020年08月04日 09:17:33   作者:Tracydzf  
這篇文章主要介紹了Python模塊zipfile原理及使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

zipfile是python里用來做zip格式編碼的壓縮和解壓縮的,由于是很常見的zip格式,所以這個模塊使用頻率也是比較高的

zipfile里有兩個非常重要的class, 分別是ZipFile和ZipInfo, 在絕大多數(shù)的情況下,我們只需要使用這兩個class就可以了。

ZipFile是主要的類,用來創(chuàng)建和讀取zip文件

ZipInfo是存儲的zip文件的每個文件的信息的。

比如要讀取一個zipfile,這里假設filename是一個文件的路徑:

import zipfile
z = zipfile.ZipFile(filename, 'r') # 這里的第二個參數(shù)用r表示是讀取zip文件,w是創(chuàng)建一個zip文件
for f in z.namelist():
  print f

上面的代碼是讀取一個zip壓縮包里所有文件的名字。z.namelist() 會返回壓縮包內(nèi)所有文件名的列表。

再看看下面一個:

import zipfile
z = zipfile.ZipFile(filename, 'r')
for i in z.infolist():
  print i.file_size, i.header_offset

這里使用了z.infolist(), 它返回的就是壓縮包內(nèi)所有文件的信息,就是一個ZipInfo的列表。一個ZopInfo對象中包含了壓縮包內(nèi)一個文件的信息,其中比較常用的是 filename, file_size, header_offset, 分別為文件名,文件大小,文件數(shù)據(jù)在壓縮包中的偏移。其實之前的z.namelist()就是讀取的ZopInfo中的filename,組成一個 list返回的。

從壓縮包里解壓縮出一個文件的方法是使用ZipFile的read方法:

import zipfile
z = zipfile.ZipFile(filename, 'r')
print z.read(z.namelist()[0])

這樣就讀取出z.namelist()中的第一個文件,并且輸出到屏幕,當然也可以把它存儲到文件。

下面是創(chuàng)建zip壓縮包的方法:

與讀取的方法其實很類似的:

import zipfile, os

z = zipfile.ZipFile(filename, 'w') # 注意這里的第二個參數(shù)是w,這里的filename是壓縮包的名字

#假設要把一個叫testdir中的文件全部添加到壓縮包里(這里只添加一級子目錄中的文件):
if os.path.isdir(testdir):
  for d in os.listdir(testdir):
    z.write(testdir+os.sep+d)
# close() 是必須調(diào)用的!
z.close()

上面的代碼非常的簡單。

想想還有一個問題,如果我把一個test/111.txt 添加到壓縮包里之后我希望在包里它放到test22/111.txt怎么辦呢?

其實這個就是ZipFile的write方法中第二個參數(shù)的作用了。只需要這樣調(diào)用:z.write("test/111.txt", "test22/111.txt")

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python實現(xiàn)畫圓功能

    python實現(xiàn)畫圓功能

    這篇文章主要為大家詳細介紹了python實現(xiàn)畫圓功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python split()函數(shù)使用方法詳解

    Python split()函數(shù)使用方法詳解

    這篇文章主要給大家詳細介紹一下Python split()函數(shù)的使用方法,文中有詳細的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2023-07-07
  • 關于最大池化層和平均池化層圖解

    關于最大池化層和平均池化層圖解

    這篇文章主要介紹了關于最大池化層和平均池化層圖解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python?OpenCV形態(tài)學運算示例詳解

    Python?OpenCV形態(tài)學運算示例詳解

    這篇文章主要為大家介紹了OpenCV中的幾個形態(tài)學運算,例如:腐蝕&膨脹、開&閉運算、梯度運算、頂帽運算黑帽運算,感興趣的可以了解一下
    2022-04-04
  • Python+wxPython實現(xiàn)文件內(nèi)容搜索工具

    Python+wxPython實現(xiàn)文件內(nèi)容搜索工具

    在本篇文章中,我們將介紹如何使用?wxPython?庫創(chuàng)建一個簡單的文件搜索工具,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-08-08
  • python腳本設置系統(tǒng)時間的兩種方法

    python腳本設置系統(tǒng)時間的兩種方法

    這篇文章主要介紹了python腳本設置系統(tǒng)時間的兩種方法,其一是調(diào)用socket直接發(fā)送udp包到國家授時中心,其二是調(diào)用ntplib包,感興趣的小伙伴們可以參考一下
    2016-02-02
  • python標準庫random模塊處理隨機數(shù)

    python標準庫random模塊處理隨機數(shù)

    這篇文章主要介紹了python標準庫random模塊處理隨機數(shù),random模塊實現(xiàn)了各種分布的偽隨機數(shù)生成器,具體介紹感興趣的小伙伴可以參考一下
    2022-09-09
  • python3 拼接字符串的7種方法

    python3 拼接字符串的7種方法

    本文給大家羅列了python3拼接字符串的七種方法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-09-09
  • 對Pytorch中nn.ModuleList 和 nn.Sequential詳解

    對Pytorch中nn.ModuleList 和 nn.Sequential詳解

    今天小編就為大家分享一篇對Pytorch中nn.ModuleList 和 nn.Sequential詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python實現(xiàn)排序算法解析

    python實現(xiàn)排序算法解析

    這篇文章主要為大家詳細介紹了python實現(xiàn)排序算法的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09

最新評論