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

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

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

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

当前代码:

import os
import time

source = [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',target
else:
    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 os
import time

source =[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',target
else:
    print 'Backup Failed'


你可能感兴趣的:(python)