python-backup-file

当我们基本完成程序的设计,我们就可以编写代码了,它是对我们的解决方案的实施。版本一例10.1 备份脚本——版本一:

#!/usr/bin/python#coding=utf8#filename:backup_version1.pyimport osimport time#The files and directories to be backed up are specified in a listsource = ['/home/jack/python']#The backup must be stored in a main backup directorytarget_dir='/home/jack/test/'#backup filenametarget=target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'#set zip commandzip_command="zip -qr '%s' %s" %(target, ' '.join(source))#Run the backupif os.system(zip_command) == 0:    print 'Successful backup to', targetelse:    print 'Backup FAILED'

输出:

Successful backup to /home/jack/test/20141110220805.zip

它如何工作?

接下来你将看到我们如何把 设计 一步一步地转换为 代码 。

我们使用了os和time模块,所以我们输入它们。然后,我们在source列表中指定需要备份的文件和目录。目标目录是我们想要存储备份文件的地方,它由target_dir变量指定。zip归档的名称是目前的日期和时间,我们使用time.strftime()函数获得。它还包括.zip扩展名,将被保存在target_dir目录中。

time.strftime()函数需要我们在上面的程序中使用的那种定制。%Y会被无世纪的年份所替代。%m会被01到12之间的一个十进制月份数替代,其他依次类推。这些定制的详细情况可以在《Python参考手册》中获得。《Python参考手册》包含在你的Python发行版中。注意这些定制与用于print语句的定制(%后跟一个元组)类似(但不完全相同)

我们使用加法操作符来 级连 字符串,即把两个字符串连接在一起返回一个新的字符串。通过这种方式,我们创建了目标zip文件的名称。接着我们创建了zip_command字符串,它包含我们将要执行的命令。你可以在shell(Linux终端或者DOS提示符)中运行它,以检验它是否工作。

zip命令有一些选项和参数。-q选项用来表示zip命令安静地工作。-r选项表示zip命令对目录递归地工作,即它包括子目录以及子目录中的文件。两个选项可以组合成缩写形式-qr。选项后面跟着待创建的zip归档的名称,然后再是待备份的文件和目录列表。我们使用已经学习过的字符串join方法把source列表转换为字符串。

最后,我们使用os.system函数 运行 命令,利用这个函数就好像在 系统 中运行命令一样。即在shell中运行命令——如果命令成功运行,它返回0,否则它返回错误号。

根据命令的输出,我们打印对应的消息,显示备份是否创建成功。好了,就是这样我们已经创建了一个脚本来对我们的重要文件做备份!

关于join函数介绍:

#!/usr/bin/python# coding=utf8# Filename python_join.pysource = ['hello','world']print(' '.join(source))#' '.join(source)的作用不只是将列表source中的项目转换为字符串,而是用空格将里面的元素链接起来,当然也可以使用其他符号连接比如:print(','.join(source))print(':'.join(source))print('!'.join(source))

输出:

python-backup-file,首发于运维者。

也许不是自己该去发挥的地方,还是让自己到最适合自己战斗的方面去吧!勇敢的接受自己的失败,

python-backup-file

相关文章:

你感兴趣的文章:

标签云: