欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python文件的壓縮與解壓

 更新時(shí)間:2022年04月15日 13:48:47   作者:淺若清風(fēng)cyf?  
這篇文章主要介紹了Python文件的壓縮與解壓,Python進(jìn)行文件、文件夾壓縮與解壓,用到的是zipfile的第三方依賴庫(kù)。根據(jù)不同應(yīng)用場(chǎng)景封裝了幾個(gè)方法,下文相關(guān)內(nèi)容需要的小伙伴可以參考一下

前言:

Python在人工智能,后臺(tái)服務(wù)等領(lǐng)域中得到了廣泛應(yīng)用。由于python有著大量的第三方開(kāi)源包以及其易用的語(yǔ)言特性,這門語(yǔ)言在數(shù)據(jù)處理、批處理等方法具有強(qiáng)大的優(yōu)勢(shì),使用起來(lái)相當(dāng)便捷。本文為大家?guī)?lái)的是使用Python進(jìn)行文件、文件夾壓縮與解壓,用到的是zipfile的第三方依賴庫(kù)。根據(jù)不同應(yīng)用場(chǎ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ò)展名篩選需要壓縮的文件到壓縮包
    注:針對(duì)單層目錄情況,文件夾下的子文件不會(huì)被壓縮
    '''
    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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python 6行代碼制作月歷生成器

    python 6行代碼制作月歷生成器

    這篇文章主要介紹了python如何用6行代碼制作月歷生成器,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-09-09
  • Python填充任意顏色,不同算法時(shí)間差異分析說(shuō)明

    Python填充任意顏色,不同算法時(shí)間差異分析說(shuō)明

    這篇文章主要介紹了Python填充任意顏色,不同算法時(shí)間差異分析說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 一文帶你了解Python中不同數(shù)據(jù)對(duì)象的空值校驗(yàn)方法

    一文帶你了解Python中不同數(shù)據(jù)對(duì)象的空值校驗(yàn)方法

    空值校驗(yàn)在數(shù)據(jù)處理和應(yīng)用程序開(kāi)發(fā)中是一個(gè)非常重要的任務(wù),Python提供了多種方式來(lái)檢查不同數(shù)據(jù)對(duì)象(如字符串、列表、字典、集合等)是否為空或包含空值,下面就跟隨小編一起來(lái)學(xué)習(xí)一下吧
    2024-01-01
  • 詳解Python如何實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)

    詳解Python如何實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)

    當(dāng)數(shù)據(jù)量大的時(shí)候,自然而然想到的就是對(duì)數(shù)據(jù)進(jìn)行壓縮,這篇文章主要為大家介紹了Python可以實(shí)現(xiàn)壓縮與解壓縮數(shù)據(jù)的相關(guān)模塊的使用,希望對(duì)大家有所幫助
    2024-02-02
  • python中g(shù)etopt()函數(shù)用法詳解

    python中g(shù)etopt()函數(shù)用法詳解

    這篇文章主要介紹了python中g(shù)etopt()函數(shù)用法,通過(guò)getopt模塊中的getopt(?)方法,我們可以獲取和解析命令行傳入的參數(shù),需要的朋友可以參考下
    2022-12-12
  • Python3+RIDE+RobotFramework自動(dòng)化測(cè)試框架搭建過(guò)程詳解

    Python3+RIDE+RobotFramework自動(dòng)化測(cè)試框架搭建過(guò)程詳解

    這篇文章主要介紹了Python3+RIDE+RobotFramework自動(dòng)化測(cè)試框架搭建過(guò)程詳解,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 基于Python實(shí)現(xiàn)簡(jiǎn)易的動(dòng)漫圖片轉(zhuǎn)換器

    基于Python實(shí)現(xiàn)簡(jiǎn)易的動(dòng)漫圖片轉(zhuǎn)換器

    本文旨在利用Python語(yǔ)言制作一個(gè)將普通照片轉(zhuǎn)換成動(dòng)漫圖片的小工具,其中使用opencv的非標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn)對(duì)圖片完成轉(zhuǎn)換,感興趣的可以嘗試一下
    2022-08-08
  • Python中str字符串的內(nèi)置方法詳解

    Python中str字符串的內(nèi)置方法詳解

    這篇文章主要介紹了Python中str字符串的內(nèi)置方法詳解,在?python?中字符串有許多內(nèi)置的方法,在日常編程中會(huì)經(jīng)常使用到,熟練運(yùn)用了能夠在很多場(chǎng)景大大的提高我們的工作效率,需要的朋友可以參考下
    2023-08-08
  • 基于Keras中Conv1D和Conv2D的區(qū)別說(shuō)明

    基于Keras中Conv1D和Conv2D的區(qū)別說(shuō)明

    這篇文章主要介紹了基于Keras中Conv1D和Conv2D的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • 教你用Python查看茅臺(tái)股票交易數(shù)據(jù)的詳細(xì)代碼

    教你用Python查看茅臺(tái)股票交易數(shù)據(jù)的詳細(xì)代碼

    CSV是以逗號(hào)分隔數(shù)據(jù)項(xiàng)(也被稱為字段)的數(shù)據(jù)交換格式,主要應(yīng)用于電子表格和數(shù)據(jù)庫(kù)之間的數(shù)據(jù)交換,本文給大家介紹下用Python查看茅臺(tái)股票交易數(shù)據(jù)的詳細(xì)代碼,感興趣的朋友一起看看吧
    2022-03-03

最新評(píng)論