日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 實現壓縮和解壓縮的示例

瀏覽:22日期:2022-07-10 13:55:19

一、說明

壓縮和解壓縮是日常常用的操作,不管是windows上圖形界面的操作,還是linux上用命令來進行壓縮解壓縮,總的而言都還是比較方便的。

但用代碼來實現就沒做過,近期也得實現代碼壓縮與解壓縮操作,所以就抽時間來研究一下。

二、zip文件壓縮和解壓縮實現

import osimport zipfile# 函數功能是zip_file_list所有文件,和zip_dir_list所有目錄下的所有文件,被壓縮到一個zip_file_name的壓縮文件中def my_zip_function(zip_file_name, zip_file_list=[], zip_dir_list=[]): # 壓縮文件最后需要close,為了方便我們直接用with with zipfile.ZipFile(zip_file_name, 'w') as zip_obj: # 壓縮文件 for tmp_file in zip_file_list: zip_obj.write(tmp_file) # 壓縮目錄 for tmp_dir in zip_dir_list: # zipfile沒有直接壓縮目錄的功能,要壓縮目錄只能遍歷目錄一個一個文件壓。 for root, dirs, files in os.walk(tmp_dir):# 如果想要目錄為空時仍將該目錄壓縮進去,該目錄也要壓縮一遍;反之請將以下行注釋掉zip_obj.write(root)for tmp_file in files: # 拼接文件完整目錄,不然只用文件名代碼找不到文件 tmp_file_path = os.path.join(root, tmp_file) zip_obj.write(tmp_file_path)# 函數功能是遍歷壓縮文件中的所有文件def my_traversal_zip_function(zip_file_name): with zipfile.ZipFile(zip_file_name, 'r') as zip_obj: # 返回結果是一個ZipInfo列表 # 如果在壓縮時顯示壓縮目錄,則目錄也作為一個單獨的ZipInfo呈現在列表中;反之則沒有目錄的ZipInfo all_file_list = zip_obj.infolist() for tmp_file in all_file_list: print(tmp_file.filename) # 還可以在不解壓的情況下直接讀取文件的內容 # 可以通過ZipInfo.is_dir()來區分是文件還是目錄 # if not tmp_file.is_dir(): # with zip_obj.open(tmp_file) as zip_fd: # print(zip_fd.read())# 函數的功能是將壓縮文件直接解壓def my_unzip_function(zip_file_name, path='.'): with zipfile.ZipFile(zip_file_name, 'r') as zip_obj: zip_obj.extractall(path=path)if __name__ == '__main__': zip_file_name = 'test_zip.zip' # 自己在測試時要先自行創建好要壓縮的文件和目錄 zip_file_list = ['test_tar_file1.txt', 'test_tar_file2.txt'] zip_dir_list = ['test_tar_dir'] my_zip_function(zip_file_name, zip_file_list, zip_dir_list) my_traversal_zip_function(zip_file_name) # my_unzip_function(zip_file_name, path='.')

三、tar文件的壓縮與解壓縮實現

除了直接的.tar文件,還包括.tar.gz/.tar.bz2/.tar.xz等格式文件的壓縮與解壓縮實現。

import osimport tarfile# 函數功能是tar_file_list所有文件,和tar_dir_list所有目錄下的所有文件,被壓縮到一個tar_file_name的壓縮文件中def my_tar_function(tar_file_name, tar_file_list=[], tar_dir_list=[], model='w'): # 本來也應該是tarfile.TarFile(tar_file_name, model)來創建的,但TarFile不支持'r:gz'等擴展形式 # 壓縮文件最后需要close,為了方便我們直接用with with tarfile.open(tar_file_name, model) as tar_obj: # 壓縮文件 for tmp_file in tar_file_list: tar_obj.add(tmp_file) # 壓縮目錄。和zipfile相比tarfile允許直接壓縮目錄,而不需要去遍歷目錄一個個文件壓 for tmp_dir in tar_dir_list: tar_obj.add(tmp_dir)# 函數功能是遍歷壓縮文件中的所有文件def my_traversal_tar_function(tar_file_name, model='r'): with tarfile.open(tar_file_name, model) as tar_obj: # 返回結果是一個TarInfo列表 all_file_list = tar_obj.getmembers() for tmp_file in all_file_list: print(tmp_file.name) # 還可以在不解壓的情況下直接讀取文件的內容 # 可以通過TarInfo.isdir()來區分是文件還是目錄 # if not tmp_file.isdir(): # # 相當于zip的open,并不會把文件給解壓出來 # tar_fd = tar_obj.extractfile(tmp_file) # print(tar_fd.read())# 函數的功能是將壓縮文件直接解壓def my_untar_function(tar_file_name, path='.', model='r'): with tarfile.open(tar_file_name, model) as tar_obj: tar_obj.extractall(path=path)if __name__ == '__main__': # 自己在測試時要先自行創建好要壓縮的文件和目錄 tar_file_list = ['test_tar_file1.txt', 'test_tar_file2.txt'] tar_dir_list = ['test_tar_dir'] tar_file_name = 'test_tar.tar' # 在.tar基礎上,tarfile還支持gz/bz2/xz的壓縮,只要在原來打開模式的基礎上使用:或|接上壓縮方法即可,如'r:gz' # 特別的,如果是讀取文件,可以使用'r:*'來指示嘗試以任意格式讀取 open_model = 'w' # open_model = 'w:gz' my_tar_function(tar_file_name, tar_file_list, tar_dir_list, model=open_model) open_model = 'r' # open_model = 'r:*' my_traversal_tar_function(tar_file_name, model=open_model) # open_model = 'r:*' # my_untar_function(tar_file_name, path='.', model=open_model)

參考:

https://docs.python.org/3/library/zipfile.html#module-zipfile

以上就是python 實現壓縮和解壓縮的示例的詳細內容,更多關于Python 壓縮和解壓縮的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
伊人影院久久| 日韩高清不卡| 美女精品网站| 精品在线91| 日韩免费一区| 国产不卡人人| 欧美综合另类| 免费欧美一区| 视频精品一区二区| 欧美欧美黄在线二区| 高潮久久久久久久久久久久久久| 美女视频黄久久| 欧美在线亚洲| 日韩高清欧美激情| 欧美日韩日本国产亚洲在线 | 免费欧美一区| 亚洲欧美不卡| 日本不卡的三区四区五区| 国产日韩一区二区三区在线| 国产精品一区高清| 久久精品国产在热久久| 色综合狠狠操| 久久久久午夜电影| 在线综合视频| 欧美国产91| 免费在线观看一区二区三区| 一区在线观看| 亚洲狼人精品一区二区三区| 国产欧美88| 精品九九在线| 国产欧美视频在线| 国产一区二区三区免费在线| 精品国模一区二区三区| 国产一区导航| 国产精品一区二区三区美女| 中文一区一区三区高中清不卡免费| 日韩中文影院| 日韩一区精品视频| 国产精品入口久久| 日本欧美不卡| 日韩精品一级二级 | 国产亚洲福利| 天堂av在线一区| 欧美日韩精品一区二区三区在线观看| 国产精品一区高清| 色黄视频在线观看| 国产农村妇女精品一二区| 国产日产精品_国产精品毛片| 精品一区二区三区中文字幕视频| 日韩精品欧美| 日本成人中文字幕在线视频| 精品久久不卡| 91成人精品视频| 国产欧美日韩一级| 日本久久成人网| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美国产专区| 欧美午夜精彩| 欧美午夜三级| 久久爱www成人| 亚洲免费激情| 麻豆91精品91久久久的内涵| 午夜精品婷婷| 麻豆精品一区二区综合av| 国产精品97| 欧美日韩国产一区二区三区不卡| 欧美91视频| 97久久亚洲| 欧美日韩一二三四| 国产亚洲观看| 亚洲少妇自拍| 岛国av在线播放| 日韩欧美美女在线观看| 三上悠亚国产精品一区二区三区| 日本午夜精品久久久久| 国产专区一区| 精品国产a一区二区三区v免费| 手机精品视频在线观看| 视频二区不卡| 久久成人福利| 国产欧美啪啪| 人人爽香蕉精品| 久久国产精品成人免费观看的软件| 国产亚洲高清一区| 性欧美长视频| 亚洲v在线看| 国产精品sm| 亚洲精品自拍| aa国产精品| 久久久成人网| 91视频久久| 国产精品巨作av| 亚洲毛片在线| 99在线观看免费视频精品观看| 亚洲天堂资源| 国产精品1区在线| 亚洲毛片视频| 美女性感视频久久| 久久一区二区三区电影| 日韩欧美高清一区二区三区| 婷婷亚洲综合| 97精品国产一区二区三区| 国产亚洲高清在线观看| 亚洲欧美在线专区| 国产日韩综合| 免费av一区| 日韩欧美不卡| 毛片在线网站| 福利精品一区| 精品国产亚洲一区二区三区大结局 | 久久国产欧美| 国产一区二区三区四区大秀| 麻豆一区二区三| 国产精品一级| 国产麻豆一区二区三区| 青青青国产精品| 日韩精品一区二区三区免费视频 | 免费看日韩精品| 黄色免费成人| 久久国产主播| 99久久夜色精品国产亚洲狼| 色网在线免费观看| 中文字幕人成乱码在线观看| 精品国产乱码久久久久久1区2匹| 亚洲欧美在线综合| 成人午夜毛片| 国产精品成人**免费视频| 日韩大片在线播放| 国产精品最新| 视频一区国产视频| 免费一级欧美片在线观看网站| 在线手机中文字幕| 国产综合欧美| 欧美激情另类| 成人一区而且| 99精品99| 欧美日韩一二三四| 日韩视频精品在线观看| 亚洲综合色婷婷在线观看| 亚洲一区二区成人| 欧美日一区二区在线观看| 日本一区福利在线| 国产精品天天看天天狠| 国产福利91精品一区二区| 国产精品多人| 私拍精品福利视频在线一区| 亚洲国产专区校园欧美| 精品国产18久久久久久二百| 免费视频一区二区三区在线观看 | 免费一级欧美在线观看视频| 亲子伦视频一区二区三区| 日韩精品福利一区二区三区| 99热精品久久| 欧美+亚洲+精品+三区| 日本一区二区中文字幕| 亚洲精品一二三区区别| 久久国产精品免费精品3p | 91伊人久久| 欧美aa在线视频| 国产在线不卡一区二区三区| 久久男人天堂| 久久福利毛片| 国产日韩欧美一区在线| 麻豆理论在线观看| 尤物tv在线精品| 久久男女视频| 亚欧洲精品视频在线观看| 久久伊人久久| 99精品视频在线| 综合激情五月婷婷| 鲁大师精品99久久久| 国精品一区二区三区| 日韩一区二区三区精品视频第3页| 美女精品久久| 91精品国产91久久久久久黑人| 久久av在线| 精品高清久久| 一区二区电影在线观看| 久久99久久人婷婷精品综合| 久久精品影视| 欧美一级二级三级视频| 136国产福利精品导航网址| 久久国产人妖系列| 999国产精品视频| 日韩和欧美一区二区三区| 91青青国产在线观看精品| 日韩精品一二三| 亚洲精品成人图区| 亚洲a成人v| 久久一区二区三区喷水| 日韩欧美中文字幕一区二区三区| 日韩不卡视频在线观看| 久久国内精品视频| 欧美~级网站不卡| 麻豆传媒一区二区三区| 久久性天堂网| 亚洲女同av| 国产精品天堂蜜av在线播放| 欧美另类综合| 红杏一区二区三区|