首页 > 代码库 > 11--Python 备份文件程序

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) +.7z10 #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 ,target15 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 备份文件程序