python在windows中备份文件并压缩的解决办法

来源:互联网 发布:淘宝200元和300元的鞋 编辑:程序博客网 时间:2024/05/20 14:17

最近在学习《简明python教程》时,被其中的例10  备份脚本给卡住了

明明是照着书上码出来,为何总是失败,一运行就提示:'zip' 不是内部或外部命令,也不是可运行的程序或批处理文件。

ps:windows系统下 已将source和target 路径由 '/Work'  转换为 r'D:\Work'  (或 ‘D:\\Work’)  注意Linux与windows中斜杠的方向不同

当前代码:

import osimport timesource = [r'D:\tools\python\project\if.py',r'D:\tools\python\project\seq.py']target_dir = r'D:\Work\Work'target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'zip_command = "zip -qr '%s' %s"%(target,''.join(source))if os.system(zip_command)==0:    print 'Successful backup to',targetelse:    print 'Backup Failed'

作为一个小白,一脸懵逼的以为自己代码写错了,反复核对 甚至将其中代码直接复制过来,运行后依然是失败

终于想起了百度,一搜之下 顿时感觉吾道不孤啊,类似问题比比皆是,不过一经试验,还是图样图森破啊,依然每次都以失败告终


经过多方尝试与组拼,最终解决方法如下:

1.下载7-Zip并安装(报错原因是当前电脑无zip程序)
2.将安装文件中的7z.exe移至‘C:\Windows’目录下
3.将程序中的 zip_command = "zip -qr '%s' %s"%(target,''.join(source))
改为:zip_command = "7z a %s %s"%(target, ' '.join(source))
再运行便会发现,文件备份并压缩成功啦


附代码

import osimport timesource =[r'D:\tools\python\project\if.py',r'D:\tools\python\project\seq.py']target_dir = r'D:\Work\Work'target = target_dir + time.strftime('%Y%m%d%H%M%S')+'.rar'rar_command = "winrar a %s %s"%(target, ' '.join(source))if os.system(rar_command)==0:    print 'Successful backup to',targetelse:    print 'Backup Failed'