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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
python的dict,set,list,tuple应用详解
Jul 24 Python
在Django的模型和公用函数中使用惰性翻译对象
Jul 27 Python
Python中datetime模块参考手册
Jan 13 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
Python 实现微信防撤回功能
Apr 29 Python
使用python实现简单五子棋游戏
Jun 18 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
将python依赖包打包成window下可执行文件bat方式
Dec 26 Python
pycharm软件实现设置自动保存操作
Jun 08 Python
Python异常处理机制结构实例解析
Jul 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
做一个有下拉功能的留言版
2006/10/09 PHP
CodeIgniter基本配置详细介绍
2013/11/12 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
js中substring和substr的详细介绍与用法
2013/08/29 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
小程序实现分类页
2019/07/12 Javascript
Python实现批量把SVG格式转成png、pdf格式的代码分享
2014/08/21 Python
python简单获取数组元素个数的方法
2015/07/13 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
浅谈pyqt5在QMainWindow中布局的问题
2019/06/21 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
描述内存分配方式以及它们的区别
2016/10/15 面试题
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
给领导的感谢信范文
2015/01/23 职场文书
甲午大海战观后感
2015/06/02 职场文书
小学家长意见怎么写
2015/06/03 职场文书
健康证明
2015/06/19 职场文书
初中生物教学反思
2016/02/20 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫