python 简单备份文件脚本v1.0的实例


Posted in Python onNovember 06, 2017

整体思路

将要备份的目录列为一个列表,通过执行系统命令,进行压缩、备份。

这样关键在于构造命令并使用 os.system( )来执行,一开始使用zip 命令始终没有成功,后来发现Windows下并没有这个命令,还要安装GnuWin32项目,后来安装了7z,实现了使用系统命令进行压缩。

压缩命令

通过下载7z压缩,将7z.exe 7z,dll 加入系统环境变量目录,通过以下命令进行压缩、解压7z a test.zip a.txt b.txt # 指定若干文件

7z a test.zip f:/test/** # 压缩文件夹7z x test.zip -of:\test # -o表示输出目录,注意其与目录路径之间没有空格
7z x test.zip -o"f:\test abc" # 假如输出文件夹有空格,用引号包裹

测试一下:

C:\Users\hm\Desktop\Web>7z a tes.7z python362.chm

7-Zip 17.01 beta (x64) : Copyright (c) 1999-2017 Igor Pavlov : 2017-08-28

Scanning the drive:
file, 8010498 bytes (7823 KiB)

Creating archive: tes.7z

Add new data to archive: 1 file, 8010498 bytes (7823 KiB)


Files read from disk: 1
Archive size: 7982833 bytes (7796 KiB)
Everything is Ok

编写Python备份代码

7z命令压缩完成后,开始编写Python备份代码:

#Filename:backup.py
import os,time

#要备份的文件的列表
source = ['C:\\Users\\hm\\Desktop\\Web\\CH2','C:\\Users\\hm\\Desktop\\Web\\CH3']
#构造好备份目标文件
target_dir = 'D:\\backup'
target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S')+'.7z'
#strftime规划了时间的格式,在下面深入了解下这个函数

#构造系统命令行
command = "7z a {0} {1}".format(target,' '.join(source))
#字符串出现空格要用双引号吗?
#print(command)


#使用系统执行命令,执行成功将返回0
if os.system(command) == 0:
 print('备份成功至',target)
else:
 print('备份失败')

一开始遇到了这个错误,因为路径使用了‘C:\user'这种表示方法

SyntaxError
---------------------------
(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

该错误的原因是:代码中的“\””在Python中表示转义.

1、在字符串前加上r或R,即:

source = [r'C:\Users\hm\Desktop\Web\CH2',r'C:\Users\hm\Desktop\Web\CH3']

其中r或R在python中表示一个不转义的字符串。

2、在“\”前加上"\"实现转义。

3、将“\”换为“/”,

改正错误后备份成功

备份成功至 D:\backup\20171105151908.7z

关于strftimr函数

查阅该函数资料如下:

语法

strftime()方法语法:

time.strftime(format[, t])参数
•format -- 格式字符串。
•t -- 可选的参数t是一个struct_time对象。
python中时间日期格式化符号:
•%y 两位数的年份表示(00-99)
•%Y 四位数的年份表示(000-9999)
•%m 月份(01-12)
•%d 月内中的一天(0-31)
•%H 24小时制小时数(0-23)
•%I 12小时制小时数(01-12)
•%M 分钟数(00=59)
•%S 秒(00-59)
•%a 本地简化星期名称
•%A 本地完整星期名称
•%b 本地简化的月份名称
•%B 本地完整的月份名称
•%c 本地相应的日期表示和时间表示
•%j 年内的一天(001-366)
•%p 本地A.M.或P.M.的等价符
•%U 一年中的星期数(00-53)星期天为星期的开始
•%w 星期(0-6),星期天为星期的开始
•%W 一年中的星期数(00-53)星期一为星期的开始
•%x 本地相应的日期表示
•%X 本地相应的时间表示
•%Z 当前时区的名称
•%% %号本身

在Python中尝试一下:

>>> import time
>>> print(time.strftime('%b%a'))
NovSun
>>> print(time.strftime('%b %a'))
Nov Sun
>>> print(time.strftime('%b %a %Z'))
Nov Sun 中国标准时间
>>> print(time.strftime('%b %a %p'))
Nov Sun PM

以上这篇python 简单备份文件脚本v1.0的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用Fn.py库在Python中进行函数式编程
Apr 22 Python
使用Python对Csv文件操作实例代码
May 12 Python
python编程线性回归代码示例
Dec 07 Python
python: line=f.readlines()消除line中\n的方法
Mar 19 Python
python中join()方法介绍
Oct 11 Python
python+opencv实现阈值分割
Dec 26 Python
Python最小二乘法矩阵
Jan 02 Python
Python函数中参数是传递值还是引用详解
Jul 02 Python
代码实例讲解python3的编码问题
Jul 08 Python
Python秒算24点实现及原理详解
Jul 29 Python
使用selenium和pyquery爬取京东商品列表过程解析
Aug 15 Python
django使用xadmin的全局配置详解
Nov 15 Python
Python如何实现MySQL实例初始化详解
Nov 06 #Python
django rest framework之请求与响应(详解)
Nov 06 #Python
基于python中的TCP及UDP(详解)
Nov 06 #Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 #Python
利用Tkinter和matplotlib两种方式画饼状图的实例
Nov 06 #Python
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 #Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 #Python
You might like
浅谈htmlentities 、htmlspecialchars、addslashes的使用方法
2016/12/09 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
javascript基本语法分析说明
2008/06/15 Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
2014/02/10 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
JavaScript闭包详解
2015/02/02 Javascript
jQuery中hover与mouseover和mouseout的区别分析
2015/12/24 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python中的global关键字的使用方法
2019/08/20 Python
Python openpyxl模块原理及用法解析
2020/01/19 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
高校教师岗位职责
2014/03/18 职场文书
中学生检讨书1000字
2014/10/28 职场文书
工作失误检讨书
2015/01/26 职场文书
辞职信的写法
2015/02/27 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
pytorch 实现变分自动编码器的操作
2021/05/24 Python