zoukankan      html  css  js  c++  java
  • python学习之路-第六天-一个简单的脚本

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

    # -*- coding:utf-8 -*-
    #! /usr/bin/python
    # Filename:backup_v1.py
    
    import os
    import time
    
    source = [r'H:StudyLiblib']
    # 源文件目录,是个列表,可以放入多个目录
    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:StudyLiblib']
    # 源文件目录,是个列表,可以放入多个目录
    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方法就不推荐使用

  • 相关阅读:
    手动安装mysql-5.0.45.tar.gz
    Hadoop2.5.2+HA+zookeeper3.4.6详细配置过程
    大数据分析之技术框架整理
    docker安装
    CentOS 6.8安装Docker V1.0
    处理百万级的数据
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 32
    剑指 Offer 31. 栈的压入、弹出序列
  • 原文地址:https://www.cnblogs.com/qjx-2016/p/7903133.html
Copyright © 2011-2022 走看看