"将多个文件夹中文件压缩存储为zip、压缩文件内容提取值指定的文件夹、获取文件md" 的3个 Python 功能脚本


0x00 脚本说明

以下包含3个功能函数,分别是将多个文件夹中文件压缩存储为zip压缩文件内容提取值指定的文件夹获取文件md5

0x01 功能代码

import os
import zipfile
import hashlib


# 将多个文件夹中文件压缩存储为zip
def file2zip(zip_file_name: str, file_names: list):
    """
    :param zip_file_name:   /root/Document/test.zip
    :param file_names:      ['/root/user/doc/test.txt', ...]
    """
    with zipfile.ZipFile(zip_file_name, mode='w', compression=zipfile.ZIP_DEFLATED) as zf:
        for fn in file_names:
            parent_path, name = os.path.split(fn)
            zf.write(fn, arcname=name)


# 压缩文件内容提取值指定的文件夹
def zip2file(zip_file_name: str, extract_path: str, members=None, pwd=None):
    """
    :param zip_file_name: 待解压的文件  .zip          r'D:\Desktop\tst.zip'
    :param extract_path:  提取文件保存的目录           r'D:\Desktop\tst\test\test'
    :param members:       指定提取的文件,默认全部
    :param pwd:           解压文件的密码
    """
    with zipfile.ZipFile(zip_file_name) as zf:
        zf.extractall(extract_path, members=members, pwd=pwd)


# 获取文件md5
def get_file_md5(filepath):
    with open(filepath, 'rb') as f:
        md5obj = hashlib.md5()
        md5obj.update(f.read())
        hash = md5obj.hexdigest()
        return hash

0x02 参考文章

https://blog.csdn.net/chichu261/article/details/106737620