<button id="2ddn7"><acronym id="2ddn7"></acronym></button>

<button id="2ddn7"><acronym id="2ddn7"></acronym></button>

  • <button id="2ddn7"><object id="2ddn7"></object></button>
      1. <s id="2ddn7"></s>
        更多課程 選擇中心


        Python培訓

        400-111-8989

        用Python處理ZIP壓縮包教程

        • 發布:詩書塞外
        • 來源:Python程序員
        • 時間:2017-11-29 10:57

        標準庫模塊zipfile可以用來處理zip壓縮包。

        測試zip文件

        is_zipfile()方法返回一個布爾值,說明參數傳入的路徑所代表的文件是不是一個zip壓縮包。

        如果參數所指向的路徑不存在,is_zipfile()會返回False。

        從壓縮包中讀取元數據

        使用ZipFile類來處理壓縮包。它既支持從壓縮包中讀取數據,也支持向壓縮包中添加新的文件。

        namelist()方法返回壓縮包中所有文件的名字。

        名字僅僅是壓縮包信息的一小部分。如果要獲取壓縮包內文件的全部信息,使用infolist()和getinfo()方法。

        除了例子中給出的這些信息外,還有更多的屬性信息。想要將這些信息解析為有意義的內容,需要仔細閱讀ZIP的標準文檔。

        如果你事先知道zip壓縮包中的文件名稱,你可以直接通過getInfo方法獲取ZipInfo對象。

        如果你想獲取的文件不存在,getInfo會拋出一個異常KeyError。

        從壓縮包中提取文件

        通過read方法可以讀取壓縮包內文件的數據,參數是該文件的文件名。

        必要時,壓縮文件會自動解壓縮。

        創建新的壓縮包

        要創建新的壓縮包,實例化一個ZipFile對象,附帶一個模式參數"w"。如果壓縮文件已經存在了,則會被清空,重新創建。想要添加文件,使用write方法。

        默認情況下,zip包是不壓縮的。

        如果要添加壓縮功能,需要使用zlib包。如果你安裝了zlib包,你可以把單個文件或者整個文件夾設置為zipfile.ZIP_DEFLATED。默認壓縮模式是zipfile.ZIP_STORED,這種模式下文件是不經壓縮直接加入壓縮包的。

        這時,壓縮包中的文件就被壓縮了。

        從其他數據源添加文件,而不是添加一個已經存在的文件

        有時候需要在沒有文件的情況下,從其他數據源生成一個壓縮文件來添加到壓縮包中。相比于把數據寫入一個文件,然后再把文件加入壓縮包,使用writestr方法把數據直接加入壓縮包,這種方式更加直接一些。

        在這種情況下,ZipFile的compress_type參數用來指定壓縮的方式,因為writestr方法沒有指定壓縮方式的參數。

        創建壓縮包時設置ZipInfo

        通常來說,壓縮文件創建時,文件的創建時間和修改時間都會被自動設置。但是我們也可以自定義這些信息,只要我們給writestr方法傳入一個ZipInfo對象。

        在這個例子中,最后修改時間被設置為了當前時間,數據被壓縮了,而且create_system被設置為了假值,而且還給這個文件添加了一個簡單的備注。

        向文件結尾追加內容

        除了創建一個新的壓縮包,你還可以向壓縮包的結尾添加內容。要打開一個文件在最后追加內容,使用打開模式"a"。

        最后這個壓縮包包含有兩個文件

        Python Zip包

        使用zipimport,Python可以從zip中導入模塊,只要這些壓縮包在sys.path列出的路徑中。使用PyZipFile類也可以構建一個這樣能夠被Python導入的Zip包。該類的writepy方法能夠遍歷一個文件夾,找出其中的pyc和pyo文件,將這些文件加入Zip包。如果沒有這些文件,則自動運行Python,生成這些文件再添加進去。

        將PyZipFile的debug參數設置為3,會開啟debug模式,它在編譯py文件時就會有相應的輸出出現在終端中。

        局限

        zipfile模塊不支持為壓縮包附帶備注,也不支持跨磁盤壓縮包。但是它支持ZIP64擴展的大于4GB的壓縮包。

        英文原文:https://pymotw.com/3/zipfile/index.html

        譯者:詩書塞外

        本文內容轉載自網絡,本著分享與傳播的原則,版權歸原作者所有,如有侵權請聯系我們進行刪除!

        預約申請免費試聽課

        填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

        上一篇:Python學習指南:入門數據科學的完整路徑
        下一篇:python使用PyCharm進行遠程開發和調試教程

        2021年Python面試題及答案匯總詳解

        python數據分析,你需要這些工具

        Python培訓講解二叉樹的三種深度

        Python培訓:如何實現窮舉搜索?

        • 掃碼領取資料

          回復關鍵字:視頻資料

          免費領取 達內課程視頻學習資料

        • 視頻學習QQ群

          添加QQ群:1143617948

          免費領取達內課程視頻學習資料

        Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

        選擇城市和中心
        黑龍江省

        吉林省

        河北省

        湖南省

        貴州省

        云南省

        廣西省

        海南省

        青青青草网站免费观看|青青青视频在线观看 超真实强奷视频在线看 百度 好搜 搜狗
        <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>