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

本文介绍了如何使用Python进行文件备份,通过WinRAR命令行工具创建ZIP归档。备份源文件和目录可自定义,目标保存位置亦可设定。文章详细解析了代码实现过程,包括环境配置、命令参数解析等,并提供了两个版本的实现示例。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用Python脚本从RDS上下载MySQL备份文件的具体步骤: 1. 安装boto3库 boto3库是Python的AWS SDK,可以方便地与AWS服务进行交互。可以使用以下命令安装boto3库: ``` pip install boto3 ``` 2. 配置AWS访问密钥 在使用boto3访问AWS服务之前,需要先配置AWS访问密钥。可以在AWS控制台上创建一个IAM用户,并生成该用户的Access Key和Secret Access Key,并将该用户加入RDS的访问策略组中。 3. 编写Python脚本 以下是一个从RDS上下载MySQL备份文件的Python脚本示例: ``` python import boto3 # 配置AWS访问密钥 aws_access_key_id = 'your_access_key_id' aws_secret_access_key = 'your_secret_access_key' # 创建rds client对象 client = boto3.client('rds', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key, region_name='your_rds_region') # 获取最近的mysql备份文件 response = client.describe_db_log_files( DBInstanceIdentifier='your_db_instance_id', FilenameContains='mysql', FileLastWritten=0 ) # 下载mysql备份文件 if len(response['DescribeDBLogFiles']) > 0: file = response['DescribeDBLogFiles'][0] filename = file['LogFileName'] download_response = client.download_db_log_file_portion( DBInstanceIdentifier='your_db_instance_id', LogFileName=filename ) with open('mysql_backup.sql', 'wb') as f: f.write(download_response['LogFileData']) ``` 需要将上面代码中的 `your_access_key_id`,`your_secret_access_key`,`your_rds_region`,`your_db_instance_id` 替换成自己的AWS访问密钥、RDS所在区域和实例ID。 4. 运行Python脚本 将上面的Python脚本保存为一个.py文件,然后在命令行中运行该文件即可从RDS上下载MySQL备份文件: ``` python download_mysql_backup.py ``` 下载下来的MySQL备份文件会保存在当前目录下的mysql_backup.sql文件中。 注意事项: - 如果RDS实例启用了加密,需要在下载备份文件时指定KMS密钥ID。可以在下载备份文件时添加以下参数: ``` python KmsKeyId='your_kms_key_id' ``` 其中,`your_kms_key_id`是KMS密钥ID。 - 如果备份文件比较大,可以使用分块下载的方式下载文件,避免一次性下载整个文件。可以在下载备份文件时添加以下参数: ``` python MaxRecords=1000, Marker='your_marker' ``` 其中,`MaxRecords`表示每次下载的最大记录数,`Marker`表示上一次下载的最后一个记录的标识符。可以将下载的备份文件按照每个分块保存到本地,最后将所有分块合并为一个文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值