问题:
实现一个可以为所有重要文件创建备份的程序
分析:
拆解问题,1、何为重要文件,假定它们都放到指定的一个或几个文件夹中。
2、备份都存放到一个备份主目录中。
3、备份压缩成zip格式
4、备份文件的名称以日期作为命名。
编写代码
#coding=utf-8
import os
import time
#需要备份的目录列表
source = [r'C:\Documents',r'D:\bak']
#备份放置的目录及备份文件名
target = 'D:\\ebooks\\' + time.strftime('%Y%m%d%H%M%S') + '.zip'
#window下的备份命令
zip_command = "zip -qr %s %s" % (target, ' '.join(source))
print zip_command
if os.system(zip_command) == 0:
print 'Successful backup to',target
else:
print 'Backup FAILED'
读懂代码,翻译成人类语言。
它如何工作?【参数等资源准备--执行--得到结果】
我们用了os, time模块,source是需要备份的文件列表。指定创建备份的存放目录和存放的zip格式文件名。
time.strftime('%Y%m%d%H%M%S')得到年月日时分秒格式的时间字符。
window下的备份命令, zip -qr 是, -q表示命名安静的执行(不显示执行日志)。 -r表示递归对文件及子文件夹下的文件进行备份。可以合并为-qr。 %s第一个占位符为 备份的目录及备份文件名称,第二个占位符是需要备份的目录列别。
' '.join(),以' '空格作为分隔符连接join()里的字符。
os.system() 执行像是在shell下执行 命令一样。成功返回0,错误返回错误信息。
shell?
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。