python怎么备份列表_python实例:backup 备份

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode1466. 重新规划路线(dfs)

n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。 路…

mysql数学函数名_Mysql数学函数

所有的数学函数在发生错误的情况下,均返回 NULL。-一元减。改变参数的符号:mysql> SELECT - 2;-> -2注意,如果这个操作符被用于一个 BIGINT,返回值也是一个 BIGINT!这就意味着,应该避免在一个可能有值…

angular 渐进_如何创建具有Angular和无头CMS的渐进式Web应用程序

angular 渐进by Ondrej Chrastina通过Ondrej Chrastina 如何创建具有Angular和无头CMS的渐进式Web应用程序 (How to create a progressive web app featuring Angular and headless CMS) Have you ever wondered how a headless Content Management System fits in with Progr…

win10不用第三方工具激活的方法

步骤:1、本机上装个win7旗舰版,这个得拿第三方工具激活一下,当然你如果已经购买了正版更没问题了。第三方工具推荐那个啥啥loader,记住:chew_wga系列的暴力工具是不行的哦;2、把需要安装的win10官方安装镜像…

CentOS 7 搭建 LAMP

一、安装httpd 1、yum install httpd -y 2、启动服务:systemctl start httpd 3、设置开机启动:systemctl enable 二、安装mariadb 1、yum groupinstall mariadb 2、启动服务:systemctl start mariadb 3、设置开机启动:systemctl e…

quartz教程二

转载于:https://www.cnblogs.com/mumian2/p/10729901.html

python hookapi_pytest文档70-Hook钩子函数完整API总结​

pytest_collectstart(collector: Collector) 收集器开始收集。pytest_make_collect_report(collector: Collector) 执行collector.collect()并返回一个CollectReport。pytest_itemcollected(item: Item) 我们刚刚收集了一个测试项目。pytest_collectreport(report: Coll…

出现字迹模糊迹象_改变迹象:如何使用动态编程解决竞争性编程问题

出现字迹模糊迹象by Sachin Malhotra由Sachin Malhotra 改变迹象:如何使用动态编程解决竞争性编程问题 (Change the signs: how to use dynamic programming to solve a competitive programming question) If you’re a competitive programmer like I am, one of…

leetcode695. 岛屿的最大面积(dfs)

给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大…

python把图片转为字符画_Python 实现图片转换为字符画

主要使用 pillow如果没有安装 使用 pillow install pillow 安装一下看代码&#xff1a;from PIL import Imageimport argparse#字符画所用的字符集ascii_char list("$B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_~<>i!lI;:,\"^. ")def get…

冒泡的三种写法

学而时习之&#xff0c;不亦说乎&#xff01; --《论语》 package com.zby.bubble;import java.util.Arrays; /*** * <class description>简单初级冒泡算法java实现* author zby**/ public class PrimaryBubble {public static void main(String[] args) {int[] arr { 1…

76. Minimum Window Substring

最后更新 一刷 08-Jan-2017 昨天Amazon group面结束&#xff0c;刚回家。 国内以前喜欢的女生结婚了&#xff0c;嘿嘿...好开心呀~~ 这次面试感觉自己的做法完爆别人&#xff0c;比什么2 greedy好多了 总之表现比想象的好&#xff0c;最后一面的面试官真是聪明得一逼&#xff…

day 02 python 基础

1.day1作业讲解 题目答案见day1 2.格式化输出 %占位符&#xff0c;s:字符串&#xff0c;d&#xff1a;数字 %%只是单纯的显示%&#xff08;显示的%是后面的&#xff09; 1 #格式化输出2 # % s d3 # name input(请输入姓名)4 # age input(请输入年龄)5 # height input(请输入…

python多维数据划分_【python+机器学习(4)】多维数据的特征选取(RidgeLasso)...

欢迎关注哈希大数据微信公众号【哈希大数据】在之前我们介绍了直接使用线性回归进行波士顿房价的预测&#xff0c;但是预测准确率仅有60%左右。预测准确率不高一方面是我们未对数据进行一定的预处理(包括归一化和标准化等)&#xff0c;这样不能确保在使用优化方式时&#xff0c…

leetcode64. 最小路径和(dp)

给定一个包含非负整数的 m x n 网格&#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。说明&#xff1a;每次只能向下或者向右移动一步。示例:输入: [[1,3,1],[1,5,1],[4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。代码 …

mysql浅拷贝_深拷贝与浅拷贝

在Python中&#xff0c;对象赋值实际上是对象的引用。当创建一个对象&#xff0c;然后把它赋给另一个变量的时候&#xff0c;Python并没有拷贝这个对象&#xff0c;而只是拷贝了这个对象的引用。1、浅拷贝&#xff1a;利用切片操作、工厂方法list方法拷贝2、深拷贝&#xff1a;…

盘州市“检企联合” 探索大数据应用新路

为认真贯彻落实“科技强检”及推进大数据应用的决策部署&#xff0c;8月31日&#xff0c;盘州市人民检察院组织召开以“检察大数据”为主题的“两长”座谈会。市经信局、中国移动盘州分公司、中国电信盘州分公司等单位负责人&#xff0c;检察院在家班子成员及院各部门主要负责人…

iOS中的颜色

最近在改Bug的时候&#xff0c;才注意到iOS 中的颜色竟然也大有文章&#xff0c;特来记录一下。 先说一下问题&#xff0c;因为某界面中有用xib实现的一个view&#xff0c;而这个view 只在UIColletionView的layout 里通过nib 注册使用&#xff0c;为这个xib设置了背景色&#x…

编程面试中需要了解的5件事

This article is intended for those who are trying to start their programming career, or are preparing to interview for their dream job. As someone who’s been on both sides of the interviewing table, I understand how it feels to be the interviewee.本文适用…

多线程的基础知识

1、程序、进程、线程的基本概念 程序&#xff1a;为了完成某种任务用某一种语言编写的一组指令的集合就叫程序。程序就是一段静态的代码。 进程&#xff1a;进程是程序的依次执行过程&#xff0c;或者说是正在运行的一个程序。这是一个动态的过程&#xff0c;有它自身的产生运行…