python学习之路-第六天-一个简单的脚本
现在有一个需求:把某个目录下的文件备份到指定到另外一个目录下,而且压缩后文件为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学习之路-第六天-一个简单的脚本的更多相关文章
- 【Python学习笔记三】一个简单的python爬虫
这里写爬虫用的requests插件 1.一般那3.x版本的python安装后都带有相应的安装文件,目录在python安装目录的Scripts中,如下: 2.将scripts的目录配置到环境变量pa ...
- python学习之路 第六天
1.正则表达式 re.match() 从头匹配: re.match("[0-9]","123abc789") 只匹配一个数字: re.match("[ ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础3
Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
- Python学习之路【第一篇】-Python简介和基础入门
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- springboot 学习之路 1(简单入门)
目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...
- python学习之路,2018.8.9
python学习之路,2018.8.9, 学习是一个长期坚持的过程,加油吧,少年!
随机推荐
- UCI机器学习库和一些相关算法(转载)
UCI机器学习库和一些相关算法 各种机器学习任务的顶级结果(论文)汇总 https://github.com//RedditSota/state-of-the-art-result-for-machi ...
- dirname(__FILE__) 的使用总结 1(转)
dirname(__FILE__) php中定义了一个很有用的常数,即 __file__ 这个内定常数是当前php程序的就是完整路径(路径+文件名). 即使这个文件被其他文件引用(include或re ...
- Flex上传文件Java端解决中文乱码问题
1.Flex端进行编码 public function encodeStr(str:String, charSet:String):String { var result:String =" ...
- easy UI树形复选框
首先,展示一下结果 这个是使用easyui的combotree控件来实现的,具体的代码如下: 1,声明一个复选框 <select id="rolePer" name=&quo ...
- 简单解决Ubuntu修改locale的问题
本文针对的问题是“Ubuntu 安装中文语言包”“Ubuntu Server中文问题”,“Ubuntu更改语言环境”,“Ubuntu locale的设定”,“cannot change local ...
- Github使用之git回退到某个历史版本
1. 查找历史版本 使用git log命令查看所有的历史版本,获取你git的某个历史版本的id 假设查到历史版本的id是fae6966548e3ae76cfa7f38a461c438cf75ba965 ...
- TP 框架 ajax[利用异步提交表单]
//[] $(function () { $("#send-btn" ).click(function (){ //接受表单的值 var username=$('input[nam ...
- 虚拟机Ubuntu系统下kaldi安装与编译简介
kaldi官网:http://www.kaldi-asr.org/doc/index.html 在http://github.com/kaldi-asr/kaldi中直接下载kaldi的zip包,没有 ...
- 实现Netty服务器与CocosCreate通信
尽量采用无锁化Netty通信处理棋牌房间逻辑 一,棋牌类服务器的特点 1,棋牌类不分区不分服 一般来说,棋牌游戏都是不分区不分服的.所以棋牌类服务器要满足随着用户量的增加而扩展的需要,所以需要设计Ga ...
- 计算机视觉中的边缘检测Edge Detection in Computer Vision
计算机视觉中的边缘检测 边缘检测是计算机视觉中最重要的概念之一.这是一个很直观的概念,在一个图像上运行图像检测应该只输出边缘,与素描比较相似.我的目标不仅是清晰地解释边缘检测是怎样工作的,同时也提 ...