利用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函数,可以实现文件夹的压缩和解压缩操作。
这只是一个简单的文件压缩工具示例,可以根据实际需求进行修改和扩展。例如,可以增加对压缩文件的密码保护、文件过滤器等功能。
