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 实现插入排序算法
Jun 05 Python
python多线程扫描端口示例
Jan 16 Python
Tornado Web服务器多进程启动的2个方法
Aug 04 Python
python通过加号运算符操作列表的方法
Jul 28 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
python 实现UTC时间加减的方法
Dec 31 Python
django连接mysql数据库及建表操作实例详解
Dec 10 Python
Python字符串中删除特定字符的方法
Jan 15 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
Python读写压缩文件的方法
Jul 30 Python
总结Python连接CS2000的详细步骤
Jun 23 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
NOT NULL 和NULL
2007/01/15 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
php echo 输出字符串函数详解
2010/05/13 PHP
PHP 设置MySQL连接字符集的方法
2011/01/02 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
python实现将内容分行输出
2015/11/05 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
tensorflow对图像进行拼接的例子
2020/02/05 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
餐饮加盟计划书
2014/01/10 职场文书
生产部管理制度
2014/01/31 职场文书
葬礼司仪主持词
2014/03/31 职场文书
劳动竞赛活动总结
2014/05/05 职场文书
企业宗旨标语
2014/06/10 职场文书
先进工作者事迹材料
2014/12/23 职场文书
产品调价通知函
2015/04/20 职场文书
Golang入门之计时器
2022/05/04 Golang