日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python zipfile教程_Python模块zipfile原理及使用方法详解

發(fā)布時(shí)間:2025/4/16 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python zipfile教程_Python模块zipfile原理及使用方法详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

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

ZipInfo是存儲(chǔ)的zip文件的每個(gè)文件的信息的。

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

import zipfile

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

for f in z.namelist():

print f

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

再看看下面一個(gè):

import zipfile

z = zipfile.ZipFile(filename, 'r')

for i in z.infolist():

print i.file_size, i.header_offset

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

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

import zipfile

z = zipfile.ZipFile(filename, 'r')

print z.read(z.namelist()[0])

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

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

與讀取的方法其實(shí)很類似的:

import zipfile, os

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

#假設(shè)要把一個(gè)叫testdir中的文件全部添加到壓縮包里(這里只添加一級(jí)子目錄中的文件):

if os.path.isdir(testdir):

for d in os.listdir(testdir):

z.write(testdir+os.sep+d)

# close() 是必須調(diào)用的!

z.close()

上面的代碼非常的簡(jiǎn)單。

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持python博客。

總結(jié)

以上是生活随笔為你收集整理的python zipfile教程_Python模块zipfile原理及使用方法详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。