《简明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)