鱼C论坛

 找回密码
 立即注册
查看: 1644|回复: 10

[已解决]一个备份文件的程序,为何总是失败

[复制链接]
发表于 2017-8-29 16:48:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 jerrylee 于 2017-8-29 16:55 编辑

在windows上运行的,python2.7,为何运行后是输出 Backup Failed
import os
import time
source = [r'D:\tools\python\project' , r'D:\tools\python\Tools']

target_dir = r'D:\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'








最佳答案
2017-8-31 09:52:53
jerrylee 发表于 2017-8-31 09:33
看8#回复,可能表达的不够清晰,希望你能看懂,谢谢解答
https://stackoverflow.com/questions/9684705/rar-a-folder-without-persisting-the-full-path
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-8-29 17:11:17 | 显示全部楼层
本帖最后由 jerrylee 于 2017-8-29 17:13 编辑

求解答,求回复
  1. import os
  2. import time

  3. source = [r'D:\tools\python\project' , r'D:\tools\python\Tools']
  4. target_dir = r'D:\Work'#Remember to change this to what you will be using
  5. target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
  6. zip_command = "zip -qr '%s' %s"%(target,''.join(source))
  7. if os.system(zip_command)==0:
  8.     print 'Successful backup to',target
  9. else:
  10.     print 'Backup Failed'
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-30 09:33:12 | 显示全部楼层
哪位好心人给看看

运行后提示:'zip' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-30 11:33:23 | 显示全部楼层
如果是 Windows 平台就用 WinRAR 即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-30 14:44:15 | 显示全部楼层
本帖最后由 jerrylee 于 2017-8-30 14:52 编辑

问题已解决了,下面说下我的解决方法吧
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)) 即可
再运行便会发现,文件备份压缩成功啦
附代码
  1. import os
  2. import time

  3. source = [r'D:\tools\python\project\if.py',r'D:\tools\python\project\seq.py']
  4. target_dir = r'D:\Work\Work'
  5. target = target_dir + time.strftime('%Y%m%d%H%M%S') + '.zip'
  6. zip_command="7z a %s %s"%(target, ' '.join(source))

  7. if os.system(zip_command)==0:
  8.     print 'Successful backup to',target
  9. else:
  10.     print 'Backup Failed'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-30 15:01:57 | 显示全部楼层
本帖最后由 jerrylee 于 2017-8-30 15:04 编辑
hldh214 发表于 2017-8-30 11:33
如果是 Windows 平台就用 WinRAR 即可

谢谢版主的回答,度娘了下winrar的使用方法,确实压缩成功了,但为何会把路径也带进去(像这样:D:\Work\Work20170830145738\tools\python\project\if.py,蓝色的是多出来的部分)
附代码:
  1. import os
  2. import time

  3. source =[r'D:\tools\python\project\if.py',r'D:\tools\python\project\seq.py']
  4. target_dir = r'D:\Work\Work'
  5. target = target_dir + time.strftime('%Y%m%d%H%M%S')+'.rar'
  6. rar_command = "winrar a %s %s"%(target, ' '.join(source))

  7. if os.system(rar_command)==0:
  8.     print 'Successful backup to',target
  9. else:
  10.     print 'Backup Failed'
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-30 17:07:08 | 显示全部楼层
jerrylee 发表于 2017-8-30 15:01
谢谢版主的回答,度娘了下winrar的使用方法,确实压缩成功了,但为何会把路径也带进去(像这样:D:\Work\ ...

不理解你的意思, 你可以先把 rar_command print 出来看看命令是否有误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-31 09:29:46 | 显示全部楼层
图1是rar_command的输出结果

图1

图1


图2是备份的压缩文件 解压后,备份文件的路径

图2

图2


预期的备份文件路径是 D:\Work\Work20170830145783 也就是解压后,打开解压的的文件,就能看到备份文件(if.py、seq.py)
现在是打开压缩文件后,还需要依次打开 tools→python→protect文件夹,才能看到备份文件(if.py、seq.py)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-31 09:33:08 | 显示全部楼层
hldh214 发表于 2017-8-30 17:07
不理解你的意思, 你可以先把 rar_command print 出来看看命令是否有误

看8#回复,可能表达的不够清晰,希望你能看懂,谢谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-31 09:52:53 | 显示全部楼层    本楼为最佳答案   
jerrylee 发表于 2017-8-31 09:33
看8#回复,可能表达的不够清晰,希望你能看懂,谢谢解答
https://stackoverflow.com/questions/9684705/rar-a-folder-without-persisting-the-full-path
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-31 13:45:59 | 显示全部楼层

谢谢分享,问题已经解决
在第7行 winrar a 后面加上 -ep 就OK了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 00:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表