国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python ZipFile模塊詳解

2019-11-25 18:38:33
字體:
來源:轉載
供稿:網友
Python zipfile模塊用來做zip格式編碼的壓縮和解壓縮的,zipfile里有兩個非常重要的class, 分別是ZipFile和ZipInfo, 在絕大多數的情況下,我們只需要使用這兩個class就可以了。ZipFile是主要的類,用來創建和讀取zip文件而ZipInfo是存儲的zip文件的每個文件的信息的。
比如要讀取一個Python zipfile 模塊,這里假設filename是一個文件的路徑:
復制代碼 代碼如下:

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

上面的代碼是讀取一個zip壓縮包里所有文件的名字。z.namelist() 會返回壓縮包內所有文件名的列表。
再看看下面一個:
復制代碼 代碼如下:

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

這里使用了z.infolist(), 它返回的就是壓縮包內所有文件的信息,就是一個ZipInfo的列表。一個ZipInfo對象中包含了壓縮包內一個文件的信息,其中比較常用的是 filename, file_size, header_offset, 分別為文件名,文件大小,文件數據在壓縮包中的偏移。其實之前的z.namelist()就是讀取的ZipInfo中的filename,組成一個 list返回的。
從壓縮包里解壓縮出一個文件的方法是使用ZipFile的read方法:
復制代碼 代碼如下:

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

這樣就讀取出z.namelist()中的第一個文件,并且輸出到屏幕,當然也可以把它存儲到文件。下面是創建zip壓縮包的方法,與讀取的方法其實很類似的:
復制代碼 代碼如下:

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

假設要把一個叫testdir中的文件全部添加到壓縮包里(這里只添加一級子目錄中的文件):
復制代碼 代碼如下:

if os.path.isdir(testdir): 
     for d in os.listdir(testdir): 
         z.write(testdir+os.sep+d) 
         # close() 是必須調用的! 
         z.close()

面的代碼非常的簡單。想想還有一個問題,如果我把一個test/111.txt 添加到壓縮包里之后我希望在包里它放到test22/111.txt怎么辦呢?其實這個就是Python ZipFile模塊的write方法中第二個參數的作用了。只需要這樣調用:
復制代碼 代碼如下:

z.write("test/111.txt", "test22/111.txt") 

以上就是我們為大家介紹的有關Python ZipFile模塊的相關知識。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 信阳市| 衢州市| 民乐县| 衡阳县| 波密县| 简阳市| 比如县| 陵川县| 澜沧| 金溪县| 宝坻区| 绥棱县| 丰顺县| 北流市| 古蔺县| 巴里| 和顺县| 揭西县| 梁山县| 连城县| 南平市| 武功县| 双牌县| 杭锦后旗| 蕲春县| 墨江| 卢湾区| 炎陵县| 大厂| 磐石市| 金门县| 梁平县| 金沙县| 喀喇| 银川市| 景泰县| 隆子县| 黄浦区| 夏邑县| 眉山市| 甘德县|