類Unix的系統,打包文件經常使用的就是tar包,結合zip工具,可以方便的打包并解壓。
在python的标準庫裡面有tarfile庫,可以方便實現生成了展開tar包。使用這個庫最大的好處,可能就在于不需要使用外部的程序調用來實現展開tar包。要知道subprocess庫的使用看似簡單,但是真要處理異常,還是比較麻煩的事。
tarfile.open()函數可以返回一個TarFile對象,同樣實現了ContextManager接口,你可以使用with語句。
首先可以使用list()方法,打印輸出包裡面的内容。
對于程序來說,這個基本沒有什麼用,但是用于調試查看還是不錯的。
接着是提取文件,extractall()可以提取所有文件到指定文件夾:
以下代碼提取所有文件到extracted子目錄
TarFile實現了next()方法,也就是可以使用for in語句進行遍曆,返回的對象是TarInfo類型:
當然也可以解壓單個文件,使用extract()方法,可以傳入一個TarInfo實例,也可以傳入路徑的字符串。下面代碼遍曆傳入TarInfo,展開到extracted2目錄。後面一部分實例使用字符串,展開到extracted3目錄。
extract函數有個缺點,就是沒有辦法用另一個文件名進行展開,隻能使用extractfile返回的内容,寫入另外一個已打開的文件,希望以後能直接提供這個功能。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!