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, 学习是一个长期坚持的过程,加油吧,少年!
随机推荐
- hadoop本地化运行
mr的三种运行方式 第一种,打成jar包,在hadoop上运行 第二种,driver端在本地,通过ide连接linux上的hdfs 第三种,windows本地运行 hadoop_dll2.6.0_64 ...
- libcgi库安装
官网:https://boutell.com/cgic/#build 1. 可直接tar包安装 tar xvf libcgi-1.0.tar.gzcd libcgi-1.0./configuremak ...
- hihoCoder #1320 : 压缩字符串 区间dp
/** 题目:hihoCoder #1320 : 压缩字符串 链接:https://hihocoder.com/problemset/problem/1320 描述 小Hi希望压缩一个只包含大写字母' ...
- MapReduce实战(六)共同粉丝
需求: 利用mapReduce实现类似微博中查找共同粉丝的功能.如下: A:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O ...
- centos7.4 update git
1. 查看 yum 源仓库的 Git 信息: yum info git 输入如下内容: Available Packages Name : git Arch : x86_64 Version : 1. ...
- Linux基础命令(2)
Fskey servername scp命令 grep 命令 find 命令 echo 命令 xargs 命令 file 命令 cat 命令 /dev/null tar 打包 gzip 压缩 示例 ...
- TortoiseGit上传项目代码到github方法(超简单)
Github是咱广大开发者用的非常多的项目代码版本管理网站,项目托管可以是私人的(private)或者公开的(public),私人的收费,一个月7美金.咱这里就只说我们个人使用的,一般都是代码对外开放 ...
- shell学习三十八天----运行顺序和eval
运行顺序和eval shell从标准输入或脚本中读取的每一行称为管道,它包括了一个或多个命令,这些命令被一个或多个管道字符(|)隔开. 其实嗨哟非常多特殊符号可用来切割单个的命令:分号(;),管道(| ...
- iOS #import和@class 区别
@class和#import相似. 1.@class用于 forward-class declaration,只能使用@class, @class class2 @interface class1 { ...
- Oracle之完全卸载
1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务. 2. 开始->程序->Oracle - OraHome81->Oracle I ...