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基于xml parse实现解析cdatasection数据
Sep 30 Python
Python随机生成一个6位的验证码代码分享
Mar 24 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
简单谈谈Python流程控制语句
Dec 04 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
python进程和线程用法知识点总结
May 28 Python
如何使用Python 打印各种三角形
Jun 28 Python
Python循环中else,break和continue的用法实例详解
Jul 11 Python
python异常触发及自定义异常类解析
Aug 06 Python
pygame实现贪吃蛇游戏(上)
Oct 29 Python
Python Django中间件使用原理及流程分析
Jun 13 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
$_GET['goods_id']+0 的使用详解
2013/06/06 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
对Python中的@classmethod用法详解
2018/04/21 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
Python 必须了解的5种高级特征
2020/09/10 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
遮罩层 + Iframe实现界面自动显示的示例代码
2020/04/26 HTML / CSS
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
经理助理岗位职责
2014/03/05 职场文书
公司授权委托书范文
2014/09/21 职场文书
欠条范文
2015/07/03 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
详解vue中v-for的key唯一性
2021/05/15 Vue.js