python学习之路-第三天-一个简单的脚本,,现在有一个需求:把某


现在有一个需求:把某个目录下的文件备份到指定到另外一个目录下,而且压缩后文件为zip文件

# -*- coding:utf-8 -*-#! /usr/bin/python# Filename:backup_v1.pyimport osimport timesource = [r‘H:\StudyLib\lib‘]# 源文件目录,是个列表,可以放入多个目录target_dir = ‘I:\\backpacks\\‘# 目标目录target = target_dir + time.strftime(‘%Y%m%d%H%M%S‘) + ‘.zip‘# 目标zip文件zip_commend = "zip -qr %s %s" % (target, ‘ ‘.join(source))# zip命令字符串print zip_commend#输出命令行测试if os.system(zip_commend) == 0:# 执行zip命令,若返回0,则说明正确备份    print ‘Successful backup to ‘ ,targetelse:    print ‘backup failed‘

上面的注释写的挺详细的了,我们需要注意的由两点:

一个是windows不会自带zip压缩程序,需要我们自己下载,并把环境变量配置正确,

下载地址

另一个如果没有在头部声明编码的话会出现中文编码的问题,一定要写在第一行

这个版本其实只是把源文件和目标文件规定了一下,并没有任何优化操作

第一个优化:

可以在我们的目标目录中建立一级和二级目录,一级目录名称就为年月日,这样在每次做备份的时候,可以确保一天只建立一个文件夹(如果存在就不用创建新的文件夹了)

# -*- coding:utf-8 -*-#! /usr/bin/python# Filename:backup_v1.pyimport osimport timesource = [r‘H:\StudyLib\lib‘]# 源文件目录,是个列表,可以放入多个目录target_dir = ‘I:\\backpacks\\‘# 目标目录today = target_dir + time.strftime(‘%Y%m%d‘)# 目标文件夹的一级目录now = time.strftime(‘%H%M%S‘)# 目标文件夹的二级目录if not os.path.exists(today):    os.mkdir(today)    print ‘Successful create directory‘,today# 如果目录不存在则创建target = today + os.sep + now + ‘.zip‘# 目标文件zip_commend = "zip -qr %s %s" % (target, ‘ ‘.join(source))# zip命令字符串print "执行命令:" +zip_commend#输出命令行测试if os.system(zip_commend) == 0:                               # 执行zip命令,若返回0,则说明正确备份    print ‘Successful backup to ‘ ,targetelse:    print ‘backup failed‘

最理想的创建这些归档的方法是分别使用zipfile和tarfile,因为是python标准库里面的方法,这次的学习里面的os.system方法就不推荐使用

python学习之路-第三天-一个简单的脚本

评论关闭