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

# -*- coding:utf-8 -*-
#! /usr/bin/python
# Filename:backup_v1.py import os
import time source = [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 ' ,target
else:
print 'backup failed'

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

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

下载地址

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

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

第一个优化:

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

# -*- coding:utf-8 -*-
#! /usr/bin/python
# Filename:backup_v1.py import os
import time source = [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 ' ,target
else:
print 'backup failed'

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

python学习之路-第六天-一个简单的脚本的更多相关文章

  1. 【Python学习笔记三】一个简单的python爬虫

    这里写爬虫用的requests插件 1.一般那3.x版本的python安装后都带有相应的安装文件,目录在python安装目录的Scripts中,如下:   2.将scripts的目录配置到环境变量pa ...

  2. python学习之路 第六天

    1.正则表达式 re.match() 从头匹配: re.match("[0-9]","123abc789") 只匹配一个数字: re.match("[ ...

  3. python学习之路-day2-pyth基础2

    一.        模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...

  4. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  5. Python学习之路-Day2-Python基础2

    Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...

  6. Python学习之路-Day1-Python基础

    学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...

  7. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  8. springboot 学习之路 1(简单入门)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  9. python学习之路,2018.8.9

    python学习之路,2018.8.9, 学习是一个长期坚持的过程,加油吧,少年!

随机推荐

  1. 13 memcache服务检查

    [root@cache01 scripts]# vim mem_check.sh #!/bin/bash count_mem=$(netstat -lntup|grep memcached|wc -l ...

  2. javascript汇总(转)

    字符串操作:http://www.cnblogs.com/magetu/archive/2012/12/18/javascript-string-methods-reference.html 几种对象 ...

  3. windows下用Eclipse连接大数据环境得hbase

    1.解压hbase安装包 2.将大数据环境得hadoop安装包拷贝到windows(这里以d:/hadoop为例) 3.打开C:\Windows\System32\drivers\etc目录下的hos ...

  4. Oracle菜鸟之怎样创建和删除表空间

    1.创建暂时表空间 创建表空间时,dbf文件一般存放在datafile文件的存放文件夹下(通常是在实例名命名的文件夹以下) 能够通过 select * from v$datafile;查看全部数据文件 ...

  5. spring 项目升级到spring cloud记录 数据源配置

    用的阿里的数据源  增加pom <dependency> <groupId>com.alibaba</groupId> <artifactId>drui ...

  6. Java Tomcat7性能监控与优化详解

    1.   目的 通过优化tomcat提高网站的并发能力. 2.   服务器资源 服务器所能提供CPU.内存.硬盘的性能对处理能力有决定性影响. 3.   优化配置 3.1. 配置tomcat管理员账户 ...

  7. docker菜鸟入门

    .Docker概念简介 1.1 Docker的应用场景 1.2 Docker的优势 1.3 Docker架构 1.4 Dorcker核心概念 Dockerfile.Docker镜像和Docker容器的 ...

  8. sublime text 3 并列显示

    alt+shift+1:显示一列 alt+shift+2:显示二列 alt+shift+3:显示三列 ......

  9. servlet ; basepath ; sendredirected ;

    Eclipse 新建 jsp页面里自动生成以下代码: <%String path = request.getContextPath();String basePath = request.get ...

  10. [Algorithms] Radix Sort

    Radix sort is another linear time sorting algorithm. It sorts (using another sorting subroutine) the ...