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 相关文章推荐
Python tempfile模块学习笔记(临时文件)
May 25 Python
Python中pip安装非PyPI官网第三方库的方法
Jun 02 Python
Sanic框架基于类的视图用法示例
Jul 18 Python
python 重命名轴索引的方法
Nov 10 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
Python中调用其他程序的方式详解
Aug 06 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
Python如何实现邮件功能
May 27 Python
Python urllib2运行过程原理解析
Jun 04 Python
基于Python爬虫采集天气网实时信息
Jun 05 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 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
服务器web工具 php环境下
2010/12/29 PHP
php 文件上传类代码
2011/08/06 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
php中this关键字用法分析
2016/12/07 PHP
jQuery-serialize()输出序列化form表单值的方法
2012/12/26 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
jquery心形点赞关注效果的简单实现
2016/11/14 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
2017/01/09 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
JS按钮闪烁功能的实现代码
2017/07/21 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
vue多个元素的样式选择器问题
2019/11/29 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
python flask中静态文件的管理方法
2018/03/20 Python
numpy 声明空数组详解
2019/12/05 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2019/12/23 Python
python实现马丁策略回测3000只股票的实例代码
2021/01/22 Python
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
土建资料员岗位职责
2014/01/04 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
公司活动总结怎么写
2014/06/25 职场文书
励志演讲稿大全
2014/08/21 职场文书
无房证明范本
2014/09/17 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
生活委员竞选稿
2015/11/21 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android