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 socket C/S结构的聊天室应用实现
Nov 30 Python
Python实现的中国剩余定理算法示例
Aug 05 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
pycharm修改界面主题颜色的方法
Jan 17 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
Jul 15 Python
Python numpy多维数组实现原理详解
Mar 10 Python
keras中的History对象用法
Jun 19 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
常用的Python代码调试工具总结
Jun 23 Python
OpenCV图像变换之傅里叶变换的一些应用
Jul 26 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php Smarty 字符比较代码
2011/02/27 PHP
php学习笔记 面向对象的构造与析构方法
2011/06/13 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
php实现对象克隆的方法
2015/06/20 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
优化javascript的执行速度
2010/01/23 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
鼠标滑过出现预览的大图提示效果
2014/02/26 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
使用JS读取XML文件的方法
2016/11/25 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
2017/12/07 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
python中的列表推导浅析
2014/04/26 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
业务内勤岗位职责
2014/04/30 职场文书
煤矿安全协议书
2014/08/20 职场文书
2015年国培研修感言
2015/08/01 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书