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

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

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

瀏覽:21日期: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久久,三上悠亚国产精品一区二区三区
综合激情在线| 日韩国产欧美在线播放| 欧美中文高清| av在线日韩| 香蕉成人久久| 亚洲激情欧美| 国产精品女主播一区二区三区| 亚洲四虎影院| 欧美日韩在线二区| av高清不卡| 亚洲天堂av影院| 成人在线免费观看网站| 国产精品久久久久久久久久妞妞| 日韩精品成人| 国产精品亚洲产品| 免费一区二区三区在线视频| 久久精品二区亚洲w码| 九九九精品视频| 91精品国产自产在线丝袜啪| 91精品国产自产观看在线| 国产精品videosex极品| 日本久久综合| 一本一道久久a久久精品蜜桃| 日本大胆欧美人术艺术动态| 日韩在线麻豆| 精品视频一区二区三区在线观看 | 午夜精品成人av| 日韩在线欧美| av免费不卡国产观看| 国产精选久久| 四虎精品永久免费| 中文字幕在线官网| 国产精品三级| 深夜福利一区| 巨乳诱惑日韩免费av| 蜜桃成人av| 综合激情视频| 丝袜美腿诱惑一区二区三区| 国产婷婷精品| 日韩午夜av在线| 蜜臀av亚洲一区中文字幕| 日韩1区2区日韩1区2区| 免费日韩av片| 久久久水蜜桃av免费网站| 国产精品久久久久av电视剧| 国产精品外国| 亚洲成人va| 91青青国产在线观看精品| 久久一区欧美| 一区二区91| 亚洲精品一区二区妖精| 久久国际精品| 99国产精品久久久久久久 | 捆绑调教美女网站视频一区 | 日韩专区在线视频| av综合电影网站| 国产精品66| 亚洲免费网址| 欧美一区久久久| 婷婷亚洲成人| 在线亚洲国产精品网站| 毛片在线网站| 欧美a一区二区| 婷婷久久免费视频| 日韩精品网站| 亚洲欧洲免费| 91精品国产福利在线观看麻豆| 欧美搞黄网站| 日韩欧美在线精品| 日韩欧美一区二区三区免费看| 韩国女主播一区二区三区| 午夜国产欧美理论在线播放| 极品裸体白嫩激情啪啪国产精品| 高清一区二区三区| 激情自拍一区| 综合精品一区| 成人免费电影网址| 日韩88av| 国产一区二区三区四区二区| 欧美黄色一区| 欧美激情三区| 久久精品国产一区二区| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 麻豆国产精品777777在线| 国产传媒在线| 久久久成人网| 视频在线在亚洲| 99国产精品| 久久精品亚洲人成影院| 亚洲午夜国产成人| 中文字幕av一区二区三区人| 久久久久久久久99精品大| 97精品一区| 日产午夜精品一线二线三线| 狠狠躁少妇一区二区三区| 肉色欧美久久久久久久免费看 | 亚洲欧美日韩综合国产aⅴ| 免费观看在线综合色| 日韩精品一区第一页| 午夜日韩在线| 国产精品老牛| 婷婷精品在线| 欧美国产亚洲精品| 日本成人在线视频网站| 亚洲一区欧美二区| 男女激情视频一区| 日本va欧美va精品发布| 国产精品一区二区精品视频观看| 羞羞答答国产精品www一本| 日韩黄色在线观看| 精品久久久中文字幕| 激情久久中文字幕| 涩涩涩久久久成人精品| 欧美国产先锋| 99热精品在线| 亚洲香蕉视频| 成人在线免费观看网站| 日本在线啊啊| 日韩视频1区| 在线一区视频观看| 日韩一区二区三区免费视频| 日本一区二区高清不卡| 日韩一区二区三区精品| 成人在线黄色| 欧美日韩一区二区三区在线电影| 久久美女性网| 国产精久久久| 日本欧美在线看| 亚洲97av| 国产视频一区欧美| 国产中文字幕一区二区三区| 久久午夜视频| 国产欧美欧美| 亚洲影院天堂中文av色| 97se综合| 狠狠久久伊人中文字幕| 欧美亚洲tv| 日韩三级久久| 蜜桃一区二区三区在线观看| 99久久亚洲精品| 日本中文字幕一区二区| 日韩中文字幕1| 欧美日韩激情| 亚洲午夜电影| 国产99久久久国产精品成人免费| 国产精品久久久久av蜜臀| 激情久久中文字幕| 久久99精品久久久久久园产越南| 免费日韩视频| 蜜臀精品久久久久久蜜臀| 亚洲香蕉网站| 久久伦理在线| 99视频精品视频高清免费| 成人一二三区| 私拍精品福利视频在线一区| 中文一区一区三区免费在线观| 日韩三级久久| 亚洲欧洲国产精品一区| 久久精品天堂| 热久久国产精品| 精品三级av| 亚洲精品一级| 免费日韩一区二区三区| av一区二区高清| 国产麻豆一区二区三区| 中日韩男男gay无套| 国产精品99在线观看| 深夜福利亚洲| 日韩视频一区| 激情亚洲影院在线观看| 国产精品一区二区三区av麻| 视频一区国产视频| 99久久激情| 日本综合字幕| 国产一区二区三区网| 日韩精品视频在线看| 九九久久婷婷| 91视频精品| 精品中文字幕一区二区三区四区| 亚洲精品伊人| 亚洲综合日本| 一区二区自拍| 国产综合色产| 日韩在线不卡| 日韩专区精品| 日韩伦理一区| 亚洲人成在线网站| 日韩国产在线| 欧美片第1页| 97精品97| 日韩专区精品| 久久国产小视频| 日韩欧美精品一区| 蜜臀国产一区| 久久精品官网| 不卡视频在线| 日韩影院免费视频| 97se亚洲| 国产欧美一区二区三区国产幕精品| 日韩激情视频网站|