• 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方法就不推荐使用

  • 相关阅读:
    还是行列转换
    SQL实现交叉表的方法
    silverlight绘制场景的教程,讲解清晰,谁都能看懂
    简单的MEF例子
    在arcgis上根据区域显示小区
    一个不错的silverlight颜色选取框控件
    mac下制作iphone铃声
    xCode中工程相关的一些处理:一个工程包含多个Target的用途和使用方法【转】
    git 分支管理
    [转]判断ios中是否安装了某些软件
  • 原文地址:https://www.cnblogs.com/qjx-2016/p/7903133.html
Copyright © 2020-2023  润新知