11--Python 备份文件程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11--Python 备份文件程序相关的知识,希望对你有一定的参考价值。

最近看了下《A Byte of Python》, 看见一个非常有意思的程序,用python进行文件行备份的练习程序, 自己在机器上敲代码运行了一遍,结果出现了一个小问题,路径出错——“找不到压缩软件”,网上搜答案,发现很多人都用python实现了这个功能,而且都是原创,高兴之余,心里面很佩服他们。

不过仔细一看,却发现这些程序中,居然有很多跟《A Byte of Python》中的一模一样,有一些进步点,多一些print提示信息。实际运行起来都是各种问题。顿时感到有些无语,所谓原创,居然是这样子。我想这应该就是国内网络上的一个通病吧,所以有问题还是多去国外论坛交流交流甚好,比如说 stackoverfolow.

我来贴上自己的代码:

 

 1 import os
 2 import time
 3 
 4 #1.需要备份的文件夹或者文件
 5 source = [D:\\backup]
 6 #2.需要备份的存放目录
 7 target_dir = D:\\work\\
 8 #3.要压缩的文件, windows 上通过winrar进行
 9 target = target_dir +time.strftime(%Y%m%d%H%M%S) +.7z
10 #4.通过WinRAR进行压缩打包
11 zip_command = rar a %s %s % (target, ‘‘.join(source)) //使用join()方法来拼接字符串
12 #5.运行脚本进行备份
13 if os.system(zip_command) == 0:
14     print successful backuped ,target
15 else:
16     print "backup failed"

 

在这个程序中我遇到了最主要的问题就是windows 平台没有想linux自带的zip命令,所以我们需要安装解压缩软件设置环境变量后才可以正常运行上述的备份程序。

可以安装7zip或者winrar都可以,只需要更换命令行参数即可, 如果使用7zip 那么11行要更改为7z 如果是winrar 更改为rar。

记得添加完压缩软件环境变量后,关掉CMD 重新打开下cmd,至于为什么,说出来都是泪!

技术分享

附上程序中使用的join()方法:

join()函数

语法:  ‘sep‘.join(seq)

参数说明
sep:分隔符。可以为空‘’
seq:要连接的元素序列、字符串、元组、字典
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

返回值:返回一个以分隔符sep连接各个元素后生成的字符串

>>> seq = [‘hello‘,‘good‘,‘boy‘]
>>> print ‘‘.join(seq)
hellogoodboy
>>> print ‘ ‘.join(seq)
hello good boy
>>>

 

以上是关于11--Python 备份文件程序的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析

Android获取各个应用程序的缓存文件代码小片段(使用AIDL)

备份你自己的snipplr.com网站片段

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?

linux下如何实现增量备份?