Python文件的壓縮與解壓
前言:
Python在人工智能,后臺服務(wù)等領(lǐng)域中得到了廣泛應(yīng)用。由于python有著大量的第三方開源包以及其易用的語言特性,這門語言在數(shù)據(jù)處理、批處理等方法具有強(qiáng)大的優(yōu)勢,使用起來相當(dāng)便捷。本文為大家?guī)淼氖鞘褂肞ython進(jìn)行文件、文件夾壓縮與解壓,用到的是zipfile的第三方依賴庫。根據(jù)不同應(yīng)用場景封裝了幾個(gè)方法,方便根據(jù)實(shí)際需要使用相應(yīng)的方法,能夠篩選出需要壓縮的文件。
安裝:
pip install zipfile
代碼:
1、壓縮整個(gè)文件夾
import zipfile import os from tqdm import tqdm def zip_file(src_dir, save_name='default'): ''' 壓縮文件夾下所有文件及文件夾 默認(rèn)壓縮文件名:文件夾名 默認(rèn)壓縮文件路徑:文件夾上層目錄 ''' if save_name == 'default': zip_name = src_dir + '.zip' else: if save_name is None or save_name == '': zip_name = src_dir + '.zip' else: zip_name = save_name + '.zip' z = zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) for dirpath, dirnames, filenames in os.walk(src_dir): fpath = dirpath.replace(src_dir, '') fpath = fpath and fpath + os.sep or '' for filename in filenames: z.write(os.path.join(dirpath, filename), fpath + filename) z.close() return True
2、壓縮指定擴(kuò)展名文件
def zip_file_by_extension(src_dir, extension='dll', save_name='default'): ''' 根據(jù)文件擴(kuò)展名篩選需要壓縮的文件到壓縮包 注:針對單層目錄情況,文件夾下的子文件不會被壓縮 ''' if save_name == 'default': zip_name = src_dir + '.zip' else: if save_name is None or save_name == '': zip_name = src_dir + '.zip' else: zip_name = save_name + '.zip' z = zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) file_list = os.listdir(src_dir) for filename in tqdm(file_list): if not os.path.isfile(os.path.join(src_dir, filename)): continue if filename.split('.')[-1] == extension: print(r'正在壓縮文件:', filename, end='') z.write(os.path.join(src_dir, filename), filename) z.close() return True
3、獲取指定類型的待壓縮文件列表
def get_zip_file_list(src_dir, extension='dll'): ''' 獲取需要壓縮的文件列表 ''' file_list = os.listdir(src_dir) zip_list = [] for filename in file_list: if not os.path.isfile(os.path.join(src_dir, filename)): continue if filename.split('.')[-1] == extension: zip_list.append(filename) print(zip_list)
4、解壓文件
def unzip_file(zip_src, dst_dir): ''' 解壓縮 ''' r = zipfile.is_zipfile(zip_src) if r: fz = zipfile.ZipFile(zip_src, 'r') for file in fz.namelist(): fz.extract(file, dst_dir) else: print('This is not zip') return False return True
到此這篇關(guān)于Python文件的壓縮與解壓的文章就介紹到這了,更多相關(guān)Python文件壓縮解壓內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python填充任意顏色,不同算法時(shí)間差異分析說明
這篇文章主要介紹了Python填充任意顏色,不同算法時(shí)間差異分析說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05一文帶你了解Python中不同數(shù)據(jù)對象的空值校驗(yàn)方法
空值校驗(yàn)在數(shù)據(jù)處理和應(yīng)用程序開發(fā)中是一個(gè)非常重要的任務(wù),Python提供了多種方式來檢查不同數(shù)據(jù)對象(如字符串、列表、字典、集合等)是否為空或包含空值,下面就跟隨小編一起來學(xué)習(xí)一下吧2024-01-01詳解Python如何實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)
當(dāng)數(shù)據(jù)量大的時(shí)候,自然而然想到的就是對數(shù)據(jù)進(jìn)行壓縮,這篇文章主要為大家介紹了Python可以實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)的相關(guān)模塊的使用,希望對大家有所幫助2024-02-02python中g(shù)etopt()函數(shù)用法詳解
這篇文章主要介紹了python中g(shù)etopt()函數(shù)用法,通過getopt模塊中的getopt(?)方法,我們可以獲取和解析命令行傳入的參數(shù),需要的朋友可以參考下2022-12-12Python3+RIDE+RobotFramework自動化測試框架搭建過程詳解
這篇文章主要介紹了Python3+RIDE+RobotFramework自動化測試框架搭建過程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09基于Python實(shí)現(xiàn)簡易的動漫圖片轉(zhuǎn)換器
本文旨在利用Python語言制作一個(gè)將普通照片轉(zhuǎn)換成動漫圖片的小工具,其中使用opencv的非標(biāo)準(zhǔn)庫實(shí)現(xiàn)對圖片完成轉(zhuǎn)換,感興趣的可以嘗試一下2022-08-08基于Keras中Conv1D和Conv2D的區(qū)別說明
這篇文章主要介紹了基于Keras中Conv1D和Conv2D的區(qū)別說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06教你用Python查看茅臺股票交易數(shù)據(jù)的詳細(xì)代碼
CSV是以逗號分隔數(shù)據(jù)項(xiàng)(也被稱為字段)的數(shù)據(jù)交換格式,主要應(yīng)用于電子表格和數(shù)據(jù)庫之間的數(shù)據(jù)交換,本文給大家介紹下用Python查看茅臺股票交易數(shù)據(jù)的詳細(xì)代碼,感興趣的朋友一起看看吧2022-03-03