import os
import time
'''
第二版是第一版的改进,
启用一种更好的文件命名机制——使用时间作为文件名,存储在以当前时间为名字的文件夹中,这一文件夹则照常存储在主备份目录下。
'''
# 例如在 Windows 下:
source = [r'E:aaa.txt']
# 在这里要注意到我们必须在字符串中使用双引号
# 用以括起其中包含空格的名称。
# 2. 备份文件必须存储在一个
# 主备份目录中
# 例如在 Windows 下:
target_dir = 'E:\Backup\'
# 要记得将这里的目录地址修改至你将使用的路径
# 如果目标目录还不存在,则进行创建
if not os.path.exists(target_dir):
os.mkdir(target_dir) # 创建目录
# 3.备份文件将打包压缩成zip文件
# 4.zip压缩文件的文件名由当前日期与时间构成
# 其中os.sep 表示更改操作系统中的路径分隔符
today = target_dir os.sep time.strftime('%Y%m%d')
# 将当前时间作为zip文件的文件名
now = time.strftime('%H%M%S')
# zip文件名称格式
target = today os.sep now 'zip'
# 如果子目录尚不存在则创建一个
if not os.path.exists(today):
os.mkdir(today)
print('Successfully created diectory', today)
# 5.原本这里是使用zip命令,但是在windows环境下面这个是不是系统命令,所以解决方案如下:
'''
1.1.下载7-Zip并安装
2.将安装文件中的7z.exe移至‘C:Windows’目录下
3.将程序中的 zip_command = "zip -qr '%s' %s"%(target,''.join(source))
改为:zip_command = "7z a %s %s"%(target, ' '.join(source))
或者是"7z a {0} {1}".format(target, ' '.join(source))
'''
zip_command = "7z a {0} {1}".format(target, ' '.join(source))
# 运行备份
print('Zip command is:')
print(zip_command)
print('Running:')
if os.system(zip_command) == 0:
print('Successful backup to', target)
else:
print('Backup FAILED')
# 运行结果
代码语言:javascript复制
Zip command is:
7z a E:Backup\20180723185035zip E:aaa.txt
Running:
7-Zip 18.05 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2018-04-30
Scanning the drive:
1 file, 10 bytes (1 KiB)
Creating archive: E:Backup\20180723185035zip.7z
Add new data to archive: 1 file, 10 bytes (1 KiB)
Files read from disk: 1
Archive size: 136 bytes (1 KiB)
Everything is Ok
Successful backup to E:Backup\20180723185035zip