欢迎访问宙启技术站
智能推送

利用Python编写的文件压缩工具

发布时间:2023-12-04 19:53:50

文件压缩是一种常见的数据压缩技术,可以将大文件压缩为较小的文件,从而节省磁盘空间和传输带宽。Python是一种强大的编程语言,具有丰富的库和模块,可以用于编写文件压缩工具。

在Python中,我们可以使用内置的zipfile模块来进行文件的压缩和解压缩操作。下面是一个简单的文件压缩工具的示例代码:

import zipfile
import os

def compress_folder(folder_path, zip_path):
    # 创建一个ZipFile对象,第一个参数为压缩后的文件名,第二个参数为模式('w'表示写入)
    with zipfile.ZipFile(zip_path, 'w') as zipf:
        # 遍历文件夹下的所有文件和子文件夹
        for foldername, subfolders, filenames in os.walk(folder_path):
            for filename in filenames:
                # 构造绝对路径和相对路径
                abs_path = os.path.join(foldername, filename)
                rel_path = os.path.relpath(abs_path, folder_path)
                # 将文件添加到zip文件中
                zipf.write(abs_path, rel_path)

def extract_zip(zip_path, extract_path):
    # 创建一个ZipFile对象
    with zipfile.ZipFile(zip_path, 'r') as zipf:
        # 解压全部文件到指定目录
        zipf.extractall(extract_path)
    print("解压完成!")

# 使用示例
if __name__ == "__main__":
    folder_path = "E:/folder_to_compress"     # 需要压缩的文件夹路径
    zip_path = "E:/compressed_folder.zip"      # 压缩后的文件路径
    extract_path = "E:/extracted_folder"       # 解压后的文件夹路径

    compress_folder(folder_path, zip_path)     # 压缩文件夹
    extract_zip(zip_path, extract_path)        # 解压文件

在上面的代码中,compress_folder函数使用了zipfile模块的ZipFile类,通过遍历文件夹下的所有文件和子文件夹,将文件逐个添加到ZipFile对象中,最后将所有文件压缩为一个zip文件。extract_zip函数则使用ZipFile对象的extractall方法将zip文件解压到指定目录。

使用示例中,我们指定了需要压缩的文件夹路径folder_path,以及压缩后的文件路径zip_path和解压后的文件夹路径extract_path。通过调用compress_folder函数和extract_zip函数,可以实现文件夹的压缩和解压缩操作。

这只是一个简单的文件压缩工具示例,可以根据实际需求进行修改和扩展。例如,可以增加对压缩文件的密码保护、文件过滤器等功能。