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之有容乃大的list(1)
Sep 14 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python配置mysql的教程(推荐)
Oct 13 Python
Django基础知识与基本应用入门教程
Jul 20 Python
Python判断有效的数独算法示例
Feb 23 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
PHP统计代码行数的小代码
Sep 19 Python
Python logging模块写入中文出现乱码
May 21 Python
python能开发游戏吗
Jun 11 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
Jan 08 Python
Python时间操作之pytz模块使用详解
Jun 14 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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
限制复选框的最大可选数
2006/07/01 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
巧用canvas
2017/01/21 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
Python入门教程之运算符与控制流
2016/08/17 Python
Python实现ping指定IP的示例
2018/06/04 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
python argparse传入布尔参数false不生效的解决
2020/04/20 Python
python如何操作mysql
2020/08/17 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
长曲棍球装备:Lacrosse Monkey
2020/12/02 全球购物
软件工程师面试题
2012/06/25 面试题
关于礼仪的演讲稿
2014/01/04 职场文书
驾驶员岗位职责
2014/01/29 职场文书
节能减耗标语
2014/06/21 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
十佳家长事迹材料
2014/08/26 职场文书
大学生团员个人总结
2015/02/14 职场文书
二手房购房意向书
2015/05/09 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL