【Python3】使用zipfile module压缩解压zip文件

《简明Python教程》中模块那一章的作业,用zipfile模块完成文件备份

压缩文件代码:

import os
import time
import zipfile

def compressZip(sourcePath, targetPath):
    '''
    :param sourcePath:待压缩文件所在文件目录
    :param targetPath:目标文件目录
    :return:null
    '''
    if not os.path.exists(targetPath):
        os.mkdir(targetPath)
    today = targetPath + os.sep + time.strftime('%Y%m%d')
    now = time.strftime('%H%M%S')
    target = today + os.sep + now + '.zip'

    if not os.path.exists(today):
        os.mkdir(today)
        print('success to create directory ', today)

    tarZip = zipfile.ZipFile(target, 'w', zipfile.ZIP_STORED)
    fileList = []
    for root,dirs,files in os.walk(sourcePath):
        for file in files:
            fileList.append(os.path.join(root, file))

    print(fileList)

    for filename in fileList:
        tarZip.write(filename, filename[len(sourcePath):])
    tarZip.close()
    print('compress file successfully!')

 

解压代码:

def unzip(sourceFile, targetPath):
    '''

    :param sourceFile: 待解压zip路径
    :param targetPath: 目标文件目录
    :return:
    '''
    file = zipfile.ZipFile(sourceFile, 'r')
    file.extractall(targetPath)
    print('success to unzip file!')

 

测试代码:

sourceFile = 'D:\\Python\\backup\\20180919\\140951.zip'
source = "D:\\Python\\source"
target_dir = 'D:\\Python\\backup'
compressZip(source, target_dir)
unzip(sourceFile, target_dir)

 

你可能感兴趣的:(Python)