unix/windows下编写一个python脚本(文件备份)--python学习(4)

经过之前的学习,我们来学习将这些知识变成有用的程序。

首先我们来提出一个需求:为重要的文件来创建一个备份

编写程序解决问题都要首先来分析问题:1.我们准备如何确定备份文件;2.备份在哪里?3.以何种方式保存。

那么我们来针对问题采用专门的解决办法:

1.需要backup的文件和目录由一个列表指定。

2.backup应该保存灾主备份目录中。

3.文件backup的格式为zip文件哦。

4.backupfiles的名字保存为当前的日期和时间。

5.使用的zip命令为标准命令,unix系统自带。windows可以使用info-zip程序。

#!/usr/bin/python
# Filename: backup_ver1.py
import os
import time
# 1. The files and directories to be backed up are specified in a list.
source = ['/home/swaroop/byte', '/home/swaroop/bin']
# If you are using Windows, use source = [r'C:\Documents', r'D:\Work'] or something like that
# 2. The backup must be stored in a main backup directory
target_dir = '/mnt/e/backup/' # Remember to change this to what you will be using
# 3. The files are backed up into a zip file.
# 4. The name of the zip archive is the current date and time
target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
# 5. We use the zip command (in Unix/Linux) to put the files in a zip archive
zip_command = "zip -qr '%s' %s" % (target, ' '.join(source))
# Run the backup
if os.system(zip_command) == 0:
print 'Successful backup to', target
else:
print 'Backup FAILED'
那么在终端输入python 文件名     后运行程序

我们得到如下结果:

sh: 1: zip-qr/mnt/e/backup/20170806212202.zip/home/swaroop/byte/home/swaroop/bin: not found
Backup FAILED
因为并没有这个目录,所以备份失败。

在这里我们使用了os和time模块(这两个模块会在下边介绍)。然后我们在下边的source语句中指定需要备份的文件和目录。

目标目录是我们想要存backup file的地方,此处用target_dir指定。

zip文件的名称是目前的日期和时间,使用timestrftime()函数获得

time.strftime函数需要我们在上面的程序中使用那种定制(定制是什么我也有点不清楚,不过应该就是那种特定的百分比和字母的组合符号)

%Y会被无世纪的年份代替。%m会被01到12的一个十进制月份代替,其他依次类推。

这些好像灾参考手册里有,注意:这些定制与print语句的定制类似,但不完全相同。

然后我们创建zip——command字符串,这个字符串并不能执行,需要我们来使用os.system函数执行它

最后,使用os.system函数运行命令,如果命令成功,返回0。否则报错。

今天的python学习到此结束,接下来我会对os模块,time模块的一些命令进行整理。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值