python实例:backup 备份

本文来源于《python简明教程》中的实例

1. 提出问题: 我想要一个可以为我的所有重要文件创建备份的程序。

2. 分析明确问题:我们如何确定该备份哪些文件?备份保存在哪里?我们怎么样存储备份?

3. 设计程序列表:

1). 需要备份的文件和目录由一个列表指定。

2). 备份应该保存在主备份目录中。

3). 文件备份成一个zip文件。

4). zip存档的名称是当前的日期和时间。

4. 编写代码:

版本1:

#Filename: backup_ver1.py

importosimporttime#1. The files and directories to be backed up are specified in a list.

source = r'c:\python34'

#2. The backup must be stored in a main backup directory

target_dir = r'c:\python34\scripts' #Remember to change this to what you will be using

#3. The files are backed up into a rar file.#4. The name of the rar archive is the current date and time

target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.rar'

#5. We use the rar command in windows to put the files in a zip archive,you must to be sure you have installed WinRARA and that in your path

rar_command = r'"C:\Program Files\WinRAR\WinRAR.exe" A %s %s -r' %(target,source)#Run the backup

if os.system(rar_command) ==0:

print ('Successful backup to',target)else:print ('Backup FAILED' )

分析:

1.  注意,source、target_dir地址都可以你任意指定。source是指向的是需要备份的文件,target_dir指向的是需要保存的地址。

source = r'e:\code'target_dir= r'e:\code'

2. zip archive压缩文档的名称用target来指定; 其中运用了

加法操作符来级连字符串(即把两个字符串连接在一起返回一个新的字符串);time.strftime()返回当前的时间;‘.rar’ 扩展名;

字符串join方法把source列表转换为字符串。source可以换成‘’.join(source),貌似只能用这‘’,里面不能加入其它符号。

你一定要将WinRAR的路径放到你的环境变量里面,然后才能直接使用WinRAR命令行。或者你要加上WinRAR的安装路径像这样:

rar_command = r'"C:\Program Files\WinRAR\WinRAR.exe" A %s %s -r' % (target,source)

3.  zip命令有一些选项和参数。  rar_command ="zip -qr '%s' %s"% (target,source)。

-q选项用来表示zip命令安静地工作。 -r选项表示zip命令对目录递归地工作,即它包括子目录以及子目录中的文件。两个选项可以组合成缩写形式-qr。所以自己查询相关的帮助文档。

但是自己在cmd命令行中输入 zip可以查询到相关的-q选项,可是没有具体的实例。在ST3中输入help('zip'),有内容,但是一点儿也没帮助,查询了python.doc文档,用搜索检索有zip模块,但是里面的内容很多不相关,这怎样查询这个相关的帮助文档呀? 还有在cmd中搜索 winrar却没有?

在cmd命令中有如下文档说明,这有点像一种格式,

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

对应着:rar_command ="zip -qr '%s' %s"% (target,source)。其中 target 对应着[-b path] [-t mmddyyyy] [-n suffixes](注:suffixes 后缀 意思)

因为前面target指向的是压缩文档的名称,包含了(目录名+时间+后缀):target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.rar'

所以[-options] 对应着 -qr,source对应着[zipfile list],那么[-xi list]对应着什么呢? 好像[-]这个表示可选项。

比如:

if os.system(XX命令) == 0:

print 'Successful!‘

那按以上这个例子,os.system命令应该返回0了,为什么?linux命令都是返回0代表成功,这是一个习惯,基本没有人用返回值0代表命令失败.所以 os.system(命令) 如果返回为0则带便命令执行成功了.具体返回其他数值代表什么意思,就要看具体命令是什么了.比如最常用的 ls 命令, 有三个返回值:0 代表成功1 代表小问题2 代表大问题

你可以使用os.system(ls)试试。。这是linux系统。windows的话使用os.system(dir)试试

这个命令是执行系统命令的,这个命令在命令行下执行,返回的永远是0。在窗口模式下,是所执行命令的返回值。

import os

cmd=r'c:\"Program Files"\notepad.exe c:\Program Files\1.txt'

os.system(cmd)

注意点:cmd中的命令的路径出现空格需要用引号,后面的文件路径不需要引号。

版本2:

关于zip

参考:python在windows下 完成文件备份的例子 :   http://blog.csdn.net/qustdjx/article/details/7837619

补充:python执行系统命令的方法 os.system(),os.popen(),commands:  http://blog.sina.com.cn/s/blog_5d24f0450101hc4w.html

python怎么备份列表_python实例:backup 备份相关推荐

  1. python 下标 遍历列表_python 遍历列表提取下标和值的实例

    python 遍历列表提取下标和值的实例 如下所示: for index,value in enumerate(['apple', 'oppo', 'vivo']): print(index,valu ...

  2. python创建一个列表_Python创建一个元素都为0的列表实例

    Python创建一个元素都为0的列表实例 实现创建一个元素都为0的列表: l=10 lis=[0]*l lis 输出结果: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 以上这篇Pyt ...

  3. python编程实例详解-Python编程之列表操作实例详解【创建、使用、更新、删除】...

    这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋友可以参考下 #coding=utf8 ''''' 列表类型也 ...

  4. python字典转换为列表_Python中将字典转换为列表的方法

    说明:列表不可以转换为字典 ①转换后的列表为无序列表 a = {'a' : 1, 'b': 2, 'c' : 3} #字典中的key转换为列表 key_value = list(a.keys()) p ...

  5. python案例源码_python实例作品

    python java 调用 jar 包下载 jython jython 2.1 文章 curiousby 2016-08-01 697浏览量 CrazyWing:Python自动化运维开发实战 十. ...

  6. win服务器系统备份,win10 windows server backup备份方法_windows10怎么备份操作系统

    我们在使用电脑时,为了避免文件丢失或者文件损坏.找不到文件,就要定期的备份下系统,这样还保护了文件也可以在系统中毒时还原,备份操作系统的话要怎么备份呢,例如在win10正式版系统中备份系统文件,下面小 ...

  7. python.集合转列表_Python基础数据类型:元组、列表、字典、集合

    你好,我是goldsunC. 让我们一起进步吧! 元组.列表.字典.集合 元组和列表是Python语言中非常重要的一部分内容,它们是Python中除了字符串以外的另两种序列结构,几乎在任何地方都少不了 ...

  8. python 下标 遍历列表_python中的数据结构与算法(1):列表、元组与字符串

    列表是 python 中最常用.最重要的数据结构之一. 一般来说,我们用列表来管理一组数据对象,这些对象可能是同一类型,也可能是不同类型.列表不仅记录了这些数据对象,而且也记录了它们之间的一种顺序关系 ...

  9. python怎么调用列表_Python中列表的使用

    python中的列表与java中的数组非常类似,但使用方法比java中数组简单很多,python中的数据类型不需要显示声明,但在使用时必须赋值,列表元素下标从0开始 初始化列表(初始化一个包含五个元素 ...

最新文章

  1. opencv像素基本操作及图像遍历at
  2. 7-6 红豆生南国 (25 分)
  3. Android笔记 消息机制handler+http之 网络图片浏览器demo
  4. php 网站干货,杂谈:优秀的php解密网站和工具网站推荐
  5. java线程 锁_Java多线程(二) 多线程的锁机制
  6. Django组件 中间件
  7. leetcode·动态规划
  8. mysql删除的表怎么恢复_误删除mysql数据库表该如何恢复操作方法
  9. 关于ADL的查找顺序
  10. 油猴脚本更改tw样式
  11. 英语语法回顾3——名词和名词性从句
  12. Linux十大常用命令
  13. 用U盘制作PE启动盘
  14. [转]网易新闻客户端为什么开始在北京市区的地铁、公交站牌大批量投放广告?...
  15. Oracle 字符函数
  16. 维度建模和范式建模对比
  17. HashMap的get/put
  18. 概率小数2013年阿里巴巴暑期实习招聘笔试题目(不完整,笔试时间:2013.5.5)
  19. Qbao Network 周年庆, 各路大佬齐祝贺!
  20. 电脑上office2010安装包下载安装教程

热门文章

  1. Unity C# namespace 命名空间的使用
  2. Django2 Web 实战03-文件上传
  3. 学习总结5 - bootstrap学习记录1__安装
  4. post提交参数过多时,取消Tomcat对 post长度限制
  5. Github入门详情教程
  6. 分布式改造剧集三:Ehcache分布式改造
  7. 关于有多少个1的计算
  8. Linux运维系统工程师系列---04
  9. github gists 101使代码共享漂亮
  10. 算法偏见是什么_算法可能会使任何人(包括您)有偏见