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的Django框架中的项目进行单元测试的方法
Apr 11 Python
python爬取51job中hr的邮箱
May 14 Python
Python处理XML格式数据的方法详解
Mar 21 Python
详解python中asyncio模块
Mar 03 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
python实现拼图小游戏
Feb 22 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
python中有帮助函数吗
Jun 19 Python
Python wordcloud库安装方法总结
Dec 31 Python
如何编写python的daemon程序
Jan 07 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
PHP读MYSQL中文乱码的解决方法
2006/12/17 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python中str.join()简单用法示例
2018/03/20 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
python实现三壶谜题的示例详解
2020/11/02 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
收银员的岗位职责范本
2014/02/04 职场文书
销售员求职个人的自我评价
2014/02/19 职场文书
新农村建设典型材料
2014/05/31 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
2015年教师新年寄语
2014/12/08 职场文书
党员转正意见怎么写
2015/06/03 职场文书
西柏坡观后感
2015/06/08 职场文书
创业计划书之家政服务
2019/09/18 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
python_tkinter弹出对话框创建
2022/03/20 Python