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爬取招聘要求等信息实例

    Python爬取招聘要求等信息是一个常见的应用场景,可以帮助用户快速获取招聘信息。本攻略将介绍Python爬取招聘要求等信息的实现过程,包括数据获取、数据处理、数据存储和示例。 步骤1:获取数据 在Python中,我们可以使用requests库获取网页数据。以下是获取招聘信息的示例代码: import requests url = ‘https://www.…

    python 2023年5月15日
    00
  • Python实现注册、登录小程序功能

    大致流程如下: 设计数据库结构:包括用户表和会话表,用户表记录用户的账号信息和登录状态,会话表用来维护用户的登录状态; 编写Python后端代码:包括注册、登录、验证、登出等接口实现。具体实现过程请参考下面的示例说明; 编写前端页面:通过HTML、CSS、JavaScript等技术实现一个简单的注册、登录页面。 下面是两个示例: 示例一:实现注册接口 首先设…

    python 2023年5月23日
    00
  • python在windows调用svn-pysvn的实现

    在 Windows 上使用 Python 调用 SVN 的客户端库 pysvn 实现起来非常方便。本文将详细讲解如何使用 Pysvn 来进行 SVN 操作。 安装 SVN 客户端 Pysvn 是一个 Python 的 SVN 客户端,因此在使用 Pysvn 之前,我们需要先安装 SVN 客户端。在 Windows 下,可以下载并安装 VisualSVN 客户…

    python 2023年6月6日
    00
  • Python相互导入的问题解决

    Python 中的模块可以相互导入,但是当两个或多个模块相互引用时,有时候可能会产生报错,这个时候我们需要一些技巧来解决。 以下是处理 Python 相互导入问题的完整攻略: 1. 实际遇到相互引用的问题 当在 Python 中有两个模块,其中一个模块引用了另一个模块的函数或者变量,而另一个模块又引用了第一个模块的某些内容时,就会产生相互导入的问题。 如下所…

    python 2023年5月13日
    00
  • Python算法应用实战之栈详解

    Python算法应用实战之栈详解 什么是栈? 栈是一种常用的数据结构,它具有后进先出(LIFO)的特点。栈的基本操作包括入栈、出栈、获取栈元素和判断栈是否为空。 Python实现栈的过程 在Python中,可以使用列表来实现栈。以下是使用列表实现栈的示例代码: class Stack: def __init__(self): self.items = [] …

    python 2023年5月13日
    00
  • python实现上传下载文件功能

    Python实现上传下载文件功能 在Python中,实现上传下载文件功能是一个常见的需求。以下是一个示例,介绍了如何使用Python实现上传下载文件功能。 示例一:使用Python实现文件上传功能 以下是一个示例,可以使用Python实现文件上传功能: import requests url = ‘http://example.com/upload’ fil…

    python 2023年5月15日
    00
  • Python线程之多线程展示详解

    Python线程之多线程展示详解 在Python中,可以使用多个线程来实现并行的任务执行,提高程序的运行效率。本篇文章将详细讲解Python多线程的使用以及实现过程。 多线程基本概念 线程:是程序执行流的最小单位,被包含在进程中,一个进程可以包括多个线程。 多线程:指同一时刻运行多个线程,即同一个进程中同时执行多个线程。 共享资源:多个线程共同使用的资源,如…

    python 2023年6月6日
    00
  • 使用pandas库对csv文件进行筛选保存

    使用pandas库可以很方便地操作和分析CSV文件数据。下面是使用pandas库对CSV文件进行筛选保存的完整攻略: 准备工作 首先要正常安装pandas库以及其他必要的库。在Python环境中,可以使用下面的命令安装pandas: $ pip install pandas 加载CSV文件 使用pandas库读入CSV文件,可以使用read_csv函数。 i…

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