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

下面是“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在MySQL中使用触发器?

    当使用Python与MySQL一起使用时,可以使用触发器来自动执行某些操作。触发器是MySQL中的一种特殊类型的存储过程,它在特定的事件发生时自动执行。以下是使用Python在MySQL中使用触发器的完整略,包括创建触发器、使用触发器和删除触发器等步骤。同时,还提供了两个示例来演示如何Python中使用MySQL触发器。 创建触发器 在Python中使用触发…

    python 2023年5月12日
    00
  • pip报错“OSError: [Errno 13] Permission denied: ‘/usr/local/lib/python3.6/dist-packages/pip/_internal/utils/wheel.py’”怎么处理?

    当使用pip安装Python包时,可能会遇到“OSError: [Errno 13] Permission denied: ‘/usr/local/lib/python3.6/dist-packages/pip/_internal/utils/wheel.py’”错误。这个错误通常是由以下原因之一引起的: 没有足够的权限:如果您没有足够的权限来安装或更新Py…

    python 2023年5月4日
    00
  • 浅析python字符串前加r、f、u、l 的区别

    下面是对于《浅析python字符串前加r、f、u、l 的区别》的完整攻略。包括了它们的含义、使用场景以及示例。 r、f、u、l分别代表什么 在Python中,我们可以在字符串的开头添加字母r、f、u、l等前缀,以控制字符串的解释方式。具体含义如下: r:原始字符串。即字符串中的特殊字符均不转义。比如换行符”\n”在原始字符串中表示为”\n”,而非实际的换行符…

    python 2023年5月20日
    00
  • 如何在Python中删除Redis数据库中的数据?

    以下是在Python中删除Redis数据库中的数据的完整使用攻略。 使用Redis数据库的前提条件 在使用Python连接Redis数据库之前,需要确保已经安装Redis数据库,并已经启动Redis,同时需要安装Python的Redis动redisy。 步骤1:导入模块 在Python中使用redis模块连接Redis数据库。以下是导入redis模块的本语法…

    python 2023年5月12日
    00
  • python+pygame简单画板实现代码实例

    下面是详细讲解“python+pygame简单画板实现代码实例”的完整攻略。 一、准备工作 1.1 安装pygame库 pip install pygame 二、代码实现 2.1 导入必要的库和常量 import pygame from pygame.locals import * BLACK = ( 0, 0, 0) WHITE = ( 255, 255,…

    python 2023年5月19日
    00
  • 解决django model修改添加字段报错的问题

    如果在 Django 项目中已经存在的模型上添加或者修改字段,可能会遇到错误。这通常发生在运行 makemigrations 或 migrate 命令时出现。 通常在添加或修改模型的字段时,需要指定字段的类型和相关的属性。可能因为这些属性不兼容或者不一致,导致 Django 无法自动创建或更新数据表。 下面是解决 Django 模型修改添加字段报错的方法,可…

    python 2023年5月20日
    00
  • 详解用python自制微信机器人,定时发送天气预报

    详解用Python自制微信机器人,定时发送天气预报 介绍 随着互联网和移动设备的普及,微信成为了人们日常生活中必不可少的工具之一。在这个基础上,越来越多的开发者开始尝试利用微信公众平台开发一些有趣的应用,其中就包括微信机器人。 本文将详细讲解如何用Python自制微信机器人,并实现定时发送天气预报的功能。 准备工作 在开始之前,我们需要准备以下工具和资料: …

    python 2023年5月30日
    00
  • Python编程基础之类和对象

    Python编程基础之类和对象 引言 类和对象是面向对象编程的基础。在Python中,类的定义非常简洁,同时也提供了强大的面向对象编程能力。 本文将从以下几个方面介绍Python编程中类和对象的基础知识: 类的定义和使用 对象的创建和属性访问 方法的定义和使用 类的继承和多态性 类的定义和使用 定义类 在Python中,使用class关键字定义一个类。一个类…

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