最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python文件操作之合并文本文件內(nèi)容示例代碼

    Python文件操作之合并文本文件內(nèi)容示例代碼

    眾所周知Python文件處理操作方便快捷,下面這篇文章主要給大家介紹了關(guān)于Python文件操作之合并文本文件內(nèi)容的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。
    2017-09-09
  • Python面向?qū)ο蟪绦蛟O計構(gòu)造函數(shù)和析構(gòu)函數(shù)用法分析

    Python面向?qū)ο蟪绦蛟O計構(gòu)造函數(shù)和析構(gòu)函數(shù)用法分析

    這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O計構(gòu)造函數(shù)和析構(gòu)函數(shù)用法,結(jié)合具體實例形式分析了Python面向?qū)ο蟪绦蛟O計中構(gòu)造函數(shù)與析構(gòu)函數(shù)的概念、原理、功能及相關(guān)使用技巧,需要的朋友可以參考下
    2019-04-04
  • Python下載網(wǎng)絡文本數(shù)據(jù)到本地內(nèi)存的四種實現(xiàn)方法示例

    Python下載網(wǎng)絡文本數(shù)據(jù)到本地內(nèi)存的四種實現(xiàn)方法示例

    這篇文章主要介紹了Python下載網(wǎng)絡文本數(shù)據(jù)到本地內(nèi)存的四種實現(xiàn)方法,涉及Python網(wǎng)絡傳輸、文本讀寫、內(nèi)存I/O、矩陣運算等相關(guān)操作技巧,代碼中包含了較為詳盡的注釋說明便于理解,需要的朋友可以參考下
    2018-02-02
  • Python中運算符

    Python中運算符"=="和"is"的詳解

    大家都知道python中有很多的運算符,今天我們就來深入的介紹is和==這兩種運算符以及他們的區(qū)別,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-10-10
  • Python Matplotlib簡易教程(小白教程)

    Python Matplotlib簡易教程(小白教程)

    這篇文章主要介紹了Python Matplotlib簡易教程(小白教程),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Python的Django框架中的數(shù)據(jù)庫配置指南

    Python的Django框架中的數(shù)據(jù)庫配置指南

    這篇文章主要介紹了Python的Django框架中的數(shù)據(jù)庫配置指南,文中舉了Python內(nèi)置的SQLite的示例,需要的朋友可以參考下
    2015-07-07
  • python用tkinter實現(xiàn)一個gui的翻譯工具

    python用tkinter實現(xiàn)一個gui的翻譯工具

    這篇文章主要介紹了python用tkinter實現(xiàn)一個gui的翻譯工具,幫助大家更好的理解和使用python,感興趣的朋友可以了解下 +
    2020-10-10
  • Python實現(xiàn)指定范圍內(nèi)篩選并剔除Excel表格中的數(shù)據(jù)

    Python實現(xiàn)指定范圍內(nèi)篩選并剔除Excel表格中的數(shù)據(jù)

    這篇文章主要為大家詳細介紹了Python如何實現(xiàn)在指定范圍內(nèi)篩選并剔除Excel表格中的數(shù)據(jù),文中的示例代碼講解詳細,感興趣的可以了解一下
    2023-06-06
  • django2.0擴展用戶字段示例

    django2.0擴展用戶字段示例

    今天小編就為大家分享一篇關(guān)于django2.0擴展用戶字段示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • OpenMV與JSON編碼問題解析

    OpenMV與JSON編碼問題解析

    這篇文章主要介紹了OpenMV與JSON編碼,JSON是一種簡潔高效的交換數(shù)據(jù)的格式,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-06-06

最新評論

昌宁县| 澄迈县| 惠来县| 台前县| 平定县| 仙居县| 徐汇区| 莱芜市| 龙胜| 福建省| 福鼎市| 宜川县| 长阳| 漳浦县| 平邑县| 恩施市| 镇安县| 伊通| 西青区| 临清市| 清丰县| 景泰县| 汾西县| 泗水县| 阳原县| 仪征市| 寻甸| 合山市| 宜都市| 建水县| 宜川县| 凤翔县| 葵青区| 五寨县| 永靖县| 清镇市| 湘乡市| 灯塔市| 合作市| 大足县| 定南县|