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如何实现一个小说网站雏形
Nov 23 Python
六行python代码的爱心曲线详解
May 17 Python
python分布式编程实现过程解析
Nov 08 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
Mar 30 Python
python实现将range()函数生成的数字存储在一个列表中
Apr 02 Python
解决Python发送Http请求时,中文乱码的问题
Apr 30 Python
Python坐标轴操作及设置代码实例
Jun 04 Python
Django如何与Ajax交互
Apr 29 Python
PyQt5爬取12306车票信息程序的实现
May 14 Python
python opencv通过4坐标剪裁图片
Jun 05 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
php查询相似度最高的字符串的方法
2015/03/12 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
AngularJS 异步解决实现方法
2017/06/12 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
vue移动端项目缓存问题实践记录
2018/10/29 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
python在linux中输出带颜色的文字的方法
2014/06/19 Python
python实现马耳可夫链算法实例分析
2015/05/20 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
python使用插值法画出平滑曲线
2018/12/15 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
印度在线杂货店:bigbasket
2018/08/23 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
群众路线学习心得体会范文
2014/11/05 职场文书
2014年销售助理工作总结
2014/12/01 职场文书
电工生产实习心得体会
2016/01/22 职场文书
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers