Phthon十、备份脚本

windows下运行

版本一:
import os
import time
source = [r'D:\work'] #源目录,可以有多个,用逗号隔开
target_dir = r'D:/work/work_backup/' #目标目录
target = target_dir + time.strftime('%Y%m%d%H%M%S')+'.zip'
zip_command="winrar A %s %s"%(target,' '.join(source))
if os.system(zip_command)== 0:
print ('Successful backup to',target)
else:
print ('Backup FAILED')

注意:(1)"r"是告诉程序不要转义
(2)把winrar的目录添加到环境变量中
(3)time.strftime()函数获得当前的日期和时间·
(4)%s不要加引号
版本二:
import os
import time
source = [r'D:\work']
target_dir = r'D:\work\work_backup'
today = target_dir + time.strftime('%Y%m%d')
now = time.strftime('%H%M%S')
if not os.path.exists(today):
os.mkdir(today)
print ('Successfully created directory', today)
target = today + os.sep + now + '.zip'
zip_command = "winrar A %s %s" % (target, ' '.join(source))
if os.system(zip_command) == 0:
print ('Successful backup to', target)
else:
print ('Backup FAILED')
注意:(1)是使用os.exists函数检验在主备份目录中是否有以当前日期作为名称的目录。如果没有,我们使用os.mkdir函数创建。
(2)os.sep变量会根据你的操作系统给出目录分隔符,即在Linux、Unix下它
是'/',在Windows下它是'\\',而在Mac OS下它是':'。使用os.sep使程序具有移植性。
版本三:
import os
import time
source = [r'D:\work']
target_dir = r'D:\work\work_backup'
today = target_dir + time.strftime('%Y%m%d')
now = time.strftime('%H%M%S')
comment = input('Enter a comment --> ')
if len(comment) == 0:
target = today + os.sep + now + '.zip'
else:
target = today + os.sep + now + '_' + \
comment.replace(' ', '_') + '.zip'
if not os.path.exists(today):
os.mkdir(today)
print ('Successfully created directory', today)
zip_command = "winrar A %s %s" % (target, ' '.join(source))
if os.system(zip_command) == 0:
print ('Successful backup to', target)
else:
print ('Backup FAILED')
注意:(1)python3的版本中,把raw_input方法替换成了input方法
(2)使用raw_input函数得到用户的注释,然后通过len函数找出输入的长度以检验用户是否确实输入了什么东西。
(3)注释会被附加到zip归档名,就在.zip扩展名之前。把注释中的空格替换成下划线是因为处理这样的文件名要容易得多。

tar命令:
tar = 'tar -cvzf %s %s -X /home/swaroop/excludes.txt' % (target, ' '.join(srcdir))#windows下没试过
● -c表示创建一个归档。
● -v表示交互,即命令更具交互性。
● -z表示使用gzip滤波器。
● -f表示强迫创建归档,即如果已经有一个同名文件,它会被替换。
● -X表示含在指定文件名列表中的文件会被排除在备份之外。例如,你可以在文件中指定
*~,从而不让备份包括所有以~结尾的文件。

最理想的创建这些归档的方法是分别使用zipfile和tarfile。它们是Python标准库的一部分。使用这些库就避免了使用os.system这个不推荐使用的函数,它容易引发严重的错误。

软件开发过程:
1. 什么(分析)
2. 如何(设计)
3. 编写(实施)
4. 测试(测试与调试)
5. 使用(实施或开发)
6. 维护(优化)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值