Python批量解压&压缩文件夹的示例代码

yizhihongxing

下面是“Python批量解压&压缩文件夹的示例代码”的完整攻略:

一、批量解压

1.1 解压单个文件

解压单个文件非常简单,我们可以使用Python内置的zipfile模块来完成。示例代码如下:

import zipfile

zip_file_path = 'example.zip'
output_folder = 'output'

with zipfile.ZipFile(zip_file_path, 'r') as zf:
    zf.extractall(output_folder)

其中,zip_file_path为需要解压的zip文件的路径,output_folder为解压后文件存放的目录。

1.2 解压多个文件

如果需要批量解压多个zip文件,我们可以使用os模块的listdir()方法遍历指定目录下的所有zip文件。示例代码如下:

import os
import zipfile

input_folder = 'input'
output_folder = 'output'

zip_files = [f for f in os.listdir(input_folder) if os.path.splitext(f)[-1] == '.zip']

for zip_file in zip_files:
    zip_file_path = os.path.join(input_folder, zip_file)

    with zipfile.ZipFile(zip_file_path, 'r') as zf:
        zf.extractall(os.path.join(output_folder, os.path.splitext(zip_file)[0]))

其中,input_folder为需要批量解压的zip文件所在的目录,output_folder为解压后文件存放的目录。

二、批量压缩

2.1 压缩单个文件夹

压缩单个文件夹同样也是使用Python内置的zipfile模块来完成。示例代码如下:

import zipfile

input_folder = 'example'
output_zip_path = 'example.zip'

with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zf:
    for foldername, subfolders, filenames in os.walk(input_folder):
        for filename in filenames:
            file_path = os.path.join(foldername, filename)
            zf.write(file_path, file_path[len(input_folder)+1:])

其中,input_folder为需要压缩的文件夹的路径,output_zip_path为压缩后的zip文件的路径。

2.2 压缩多个文件夹

如果需要批量压缩多个文件夹,我们仍然可以使用os模块的listdir()方法遍历指定目录下的所有文件夹。示例代码如下:

import os
import zipfile

input_folder = 'input'
output_folder = 'output'

folders = [f for f in os.listdir(input_folder) if os.path.isdir(os.path.join(input_folder, f))]

for folder in folders:
    input_folder_path = os.path.join(input_folder, folder)
    output_zip_path = os.path.join(output_folder, folder + '.zip')

    with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zf:
        for foldername, subfolders, filenames in os.walk(input_folder_path):
            for filename in filenames:
                file_path = os.path.join(foldername, filename)
                zf.write(file_path, file_path[len(input_folder_path)+1:])

其中,input_folder为需要批量压缩的文件夹所在的目录,output_folder为压缩后文件存放的目录。

示例说明:

  • 示例1:如果需要批量解压文件夹,可以使用listdir()方法配合ZipFile模块完成。其实现方式也可以用于批量解压zip文件,只需要将listdir()方法的参数修改为zip文件所在的目录即可。
  • 示例2:如果需要批量压缩文件夹,可以使用listdir()方法来遍历文件夹,然后使用ZipFile模块来进行压缩。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python批量解压&压缩文件夹的示例代码 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • python密码学各种加密模块教程

    Python密码学各种加密模块教程 本教程将介绍在Python中使用密码学加密算法的各种模块。这些模块能够帮助你实现任意长度的加密和解密流程,包括对称加密和非对称加密等。 对称加密 对称加密采用同样的密钥用于加密和解密。在Python中,可以使用以下两个模块进行对称加密: hashlib hashlib模块提供了各种哈希算法的实现,可以将输入数据转化为哈希值…

    python 2023年6月2日
    00
  • Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】

    爬取网站数据是Python中常见的任务之一。本攻略将介绍如何使用Python爬取简书首页文章标题和文章链接,并提供一些示例。 步骤一:安装requests和BeautifulSoup库 在开始爬取简书首页文章标题和文章链接之前,我们需要安装requests和BeautifulSoup库。我们可以使用pip命令来安装这两个库: pip install requ…

    python 2023年5月15日
    00
  • python乱序字符串排序的实现方式

    下面是关于Python乱序字符串排序的完整攻略: 1. 什么是乱序字符串排序 乱序字符串排序,指的是对由任意个字符串元素组成的字符串进行排序。这个排序可以按照不同的规则来进行,如按照字典序升序排列、按照字符串长度升序排列等。 2. 乱序字符串排序的实现方式 下面介绍两种基于Python语言的乱序字符串排序的实现方式: 2.1 使用sorted函数实现 通过P…

    python 2023年6月3日
    00
  • 使用Python脚本从文件读取数据代码实例

    下面我将详细讲解如何使用Python脚本从文件读取数据的完整攻略,包含以下内容: 文件读取方式 代码实例1:从txt文件中读取数据 代码实例2:从csv文件中读取数据 1. 文件读取方式 Python提供了多种方式从文件中读取数据,常用的有以下几种: open()函数:用于打开文件并返回文件对象,之后可使用文件对象的方法读取或写入文件。 read()方法:用…

    python 2023年6月5日
    00
  • python将列表添加到列表错误[重复]

    【问题标题】:python add list into a list error [duplicate]python将列表添加到列表错误[重复] 【发布时间】:2023-04-04 02:48:01 【问题描述】: 编写python代码将列表添加到列表中,如下: mbk = MiniBatchKMeans(n_clusters=cluster_number)…

    Python开发 2023年4月6日
    00
  • python关于调用函数外的变量实例

    当我们需要在一个函数内使用函数外的变量实例时,有几种方法可以实现该功能。 1.使用全局变量(不建议使用) 在Python中,可以通过声明变量为全局变量,来在函数内部直接使用它。但是这种方法不太安全,因为全局变量可能被其他函数或模块修改而导致出错。 示例代码: count = 0 # 定义全局变量count def increment(): global co…

    python 2023年6月5日
    00
  • Python入门必须知道的11个知识点

    Python入门必须知道的11个知识点 Python是一种简单易学、功能强大的编程语言,已经得到了广泛的应用。下面是入门Python必须知道的11个知识点,包括变量、数据类型、运算符、条件语句、循环语句、函数、模块、I/O操作、异常处理、面向对象编程和常用的第三方库。 变量 变量是用来存储数据的容器,Python中的变量不需要事先声明数据类型,可以直接赋值。…

    python 2023年6月5日
    00
  • 详解用python生成随机数的几种方法

    生成随机数在Python中非常重要,可以被用于游戏、加密、模拟和统计等多种场合。下面是几种Python生成随机数的方法: 1. random模块 Python内建模块random提供了简单的随机数生成器。可以生成整数、浮点数、甚至是序列中的元素随机选择等。代码如下: import random #生成0.0到1.0之间的随机数 print(random.ra…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部