Python_面向对象_zipfile和tarfile
#python壓縮解壓模塊: zipfile tarfile
#--zipfile模塊
'''
后綴為zip
'''
zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
*ZipFile(路徑包名,模式,壓縮or打包,可選allowZip64)
功能:創建一個ZipFile對象,表示一個zip文件.
參數:
-參數file表示文件的路徑或類文件對象(file-like object)
-參數mode指示打開zip文件的模式,默認值為r
r 表示讀取已經存在的zip文件
w 表示新建一個zip文檔或覆蓋一個已經存在的zip文檔
a 表示將數據追加到一個現存的zip文檔中。
-參數compression表示在寫zip文檔時使用的壓縮方法
zipfile.ZIP_STORED 只是存儲模式,不會對文件進行壓縮,這個是默認值
zipfile.ZIP_DEFLATED 對文件進行壓縮
-如果要操作的zip文件大小超過2G,應該將allowZip64設置為True。
#壓縮文件
#1.ZipFile() 寫模式w打開或者新建壓縮文件
#2.write(路徑,別名) 向壓縮文件中添加文件內容
#3.close() 關閉壓縮文件
#解壓文件
#1.ZipFile() 讀模式r打開壓縮文件
#2.extractall(路徑) 解壓所有文件到某個路徑下
# extract(文件,路徑) 解壓指定的某個文件到某個路徑下
#3.close() 關閉壓縮文件
#追加文件(支持with寫法)
ZipFile() 追加模式a打開壓縮文件
#查看壓縮包中的內容
namelist()
"""
#處理zip中文亂碼
#方法一
zip_file = zip_file.encode('cp437').decode('gbk')
#方法二
zip_file = zip_file.encode('utf-8').decode('utf-8')
"""
#--tarfile模塊
"""
后綴類型: .tar | .tar.gz | .tar.bz2
模式有tar|gz|bz2 (bz2模式的壓縮文件較小 gz相對bz2大)
例:
w 單純的套一個后綴 打包
w:bz2 采用bz2算法 壓縮
"""
#壓縮文件
#1.open('路徑包名','模式','字符編碼')創建或者打開文件
#2.add(路徑文件,arcname="別名")向壓縮文件中添加文件
#3,close()關閉文件
#解壓文件
#1.open('路徑包名','模式','字符編碼')讀模式打開文件
#2.extractall(路徑) 解壓所有文件到某個路徑下
?# extract(文件,路徑) 解壓指定的某個文件到某個路徑下
#3.close() 關閉壓縮文件
#追加文件
open() 追加模式a:打開壓縮文件 正常添加即可
#查看壓縮包中的內容
getnames()
?
?
?
?
# zipfile模塊
# 后綴是zip
# 壓縮文件是zipfile
zp = zipfile.ZipFile("/mnt/hgfs/vm_gongxiang/star/a001.zip","w",zipfile.ZIP_DEFLATED)
zp.write("/bin/dash","dash")
zp.write("/bin/date","date")
zp.write("/bin/dd","dd")
zp.write("/bin/df","df")
zp.close()
?
# 壓縮文件
with zipfile.ZipFile("/mnt/hgfs/vm_gongxiang/star/a001.zip","r") as zp:
zp.extractall("/mnt/hgfs/vm_gongxiang/star/a001")
# zp.extract("/mnt/hgfs/vm_gongxiang/star/a001")
?
# 追加文件
with zipfile.ZipFile("/mnt/hgfs/vm_gongxiang/star/a001.zip","a",zipfile.ZIP_DEFLATED) as zp:
zp.write("/bin/dmesg","/dmesg")
?
# 查看壓縮包中的內容
with zipfile.ZipFile("/mnt/hgfs/vm_gongxiang/star/a001.zip","r") as zp:
res = zp.namelist()
print(res)
===
# tarfile模塊
"""
后綴類型: .tar| .tar.gz | .tat.bz2
模式有tar|gz|bz2(bz2模式的壓縮文件較小 gz相對bz2大)
例:
w 單純的套個后綴 打包
w:gz 采用bz2算法 壓縮
w:bz2 采用gz算法 壓縮
"""
import tarfile
# tarfile 壓縮文件
with tarfile.open("/mnt/hgfs/mv_gongxiang/star/a001.tar.bz","w:bz",encoding="gbk") as tf:
tf.add("/bin/dash",arcname="dash")
tf.add("/bin/date",arcname="date")
tf.add("/bin/dd",arcname="dd")
tf.add("/bin/df",arcname="df")
tf.add("/mnt/hgfs/mv_gongxiang/你好.txt",arcname="你好")
# tarfile 解壓文件
with tarfile.open("/mnt/hgfs/mv_gongxiang/star/a001.tar.bz","r") as tf:
tf.extractall("/mnt/hgfs/mv_gongxiang/star/a001")
# tf.extract("/mnt/hgfs/mv_gongxiang/star/a001")
?
# tarfile 追加文件
with tarfil.open("/mnt/hgfs/mv_gongxiang/star/a001.tar.bz","a:") as tf:
tf.add("/bin/echo",arcname="echo")
?
# 查看壓縮包中內容
with tarfile.open("/mnt/hgfs/mv_gongxiang/star/a001.tar.bz","r",encoding="gbk") as tf:
res = tf.getname()
print(res)
?
?
?
轉載于:https://www.cnblogs.com/bling-bling-star/p/9409656.html
總結
以上是生活随笔為你收集整理的Python_面向对象_zipfile和tarfile的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle数据库锁表查询
- 下一篇: html设置背景颜色以及透明度代码,HT