鱼C论坛

 找回密码
 立即注册
查看: 427|回复: 5

沈洁元版的python简易教程备份重要文件backup_ver1

[复制链接]
发表于 2020-4-2 13:45:11 | 显示全部楼层 |阅读模式

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

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

x
不懂为啥总是Backup Failed,困扰了三天的问题,求大神解决
import os
import time
# 1. 需要备份的文件与目录将被
# 指定在一个列表中。
# 例如在 Windows 下:
# source = ['"C:\\My Documents"', 'C:\\Code']
# 又例如在 Mac OS X 与 Linux 下:
source = ['/Users/swa/notes']
# 在这里要注意到我们必须在字符串中使用双引号
# 用以括起其中包含空格的名称。
#2. 备份文件必须存储在一个
#主备份目录中
#例如在 Windows 下:
# target_dir = 'E:\\Backup'
# 又例如在 Mac OS X 和 Linux 下:
target_dir = '/Users/swa/backup'
# 要记得将这里的目录地址修改至你将使用的路径
# 3. 备份文件将打包压缩成 zip 文件。
# 4. zip 压缩文件的文件名由当前日期与时间构成。
target = target_dir + os.sep + \
time.strftime('%Y%m%d%H%M%S') + '.zip'
# 如果目标目录还不存在,则进行创建
if not os.path.exists(target_dir):
os.mkdir(target_dir) # 创建目录
# 5. 我们使用 zip 命令将文件打包成 zip 格式
zip_command = 'zip -r {0} {1}'.format(target,
' '.join(source))
# 运行备份
print('Zip command is:')
print(zip_command)
print('Running:')
if os.system(zip_command) == 0:
print('Successful backup to', target)
else:
print('Backup FAILED')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-2 13:59:09 | 显示全部楼层
这代码,发代码的话,点“代码",就是两个尖括号那个<>,然后把代码拷进去,帖子出来就好看多了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 14:00:10 | 显示全部楼层
最后的if和else判断出现问题,导致一直else。..

你能确定你 os.system(zip_command)  输出的是个int型的整数吗?

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

使用道具 举报

 楼主| 发表于 2020-4-2 14:01:32 | 显示全部楼层
  1. import os
  2. import time
  3. # 1. 需要备份的文件与目录将被
  4. # 指定在一个列表中。
  5. # 例如在 Windows 下:
  6. # source = ['"C:\\My Documents"', 'C:\\Code']
  7. # 又例如在 Mac OS X 与 Linux 下:
  8. source = ['/Users/swa/notes']
  9. # 在这里要注意到我们必须在字符串中使用双引号
  10. # 用以括起其中包含空格的名称。
  11. #2. 备份文件必须存储在一个
  12. #主备份目录中
  13. #例如在 Windows 下:
  14. # target_dir = 'E:\\Backup'
  15. # 又例如在 Mac OS X 和 Linux 下:
  16. target_dir = '/Users/swa/backup'
  17. # 要记得将这里的目录地址修改至你将使用的路径
  18. # 3. 备份文件将打包压缩成 zip 文件。
  19. # 4. zip 压缩文件的文件名由当前日期与时间构成。
  20. target = target_dir + os.sep + \
  21. time.strftime('%Y%m%d%H%M%S') + '.zip'
  22. # 如果目标目录还不存在,则进行创建
  23. if not os.path.exists(target_dir):
  24. os.mkdir(target_dir) # 创建目录
  25. # 5. 我们使用 zip 命令将文件打包成 zip 格式
  26. zip_command = 'zip -r {0} {1}'.format(target,
  27. ' '.join(source))
  28. # 运行备份
  29. print('Zip command is:')
  30. print(zip_command)
  31. print('Running:')
  32. if os.system(zip_command) == 0:
  33. print('Successful backup to', target)
  34. else:
  35. print('Backup FAILED')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-2 14:02:03 | 显示全部楼层
txxcat 发表于 2020-4-2 13:59
这代码,发代码的话,点“代码",就是两个尖括号那个,然后把代码拷进去,帖子出来就好看多了。

谢谢大佬 新人不懂怎么发帖
  1. import os
  2. import time
  3. # 1. 需要备份的文件与目录将被
  4. # 指定在一个列表中。
  5. # 例如在 Windows 下:
  6. # source = ['"C:\\My Documents"', 'C:\\Code']
  7. # 又例如在 Mac OS X 与 Linux 下:
  8. source = ['/Users/swa/notes']
  9. # 在这里要注意到我们必须在字符串中使用双引号
  10. # 用以括起其中包含空格的名称。
  11. #2. 备份文件必须存储在一个
  12. #主备份目录中
  13. #例如在 Windows 下:
  14. # target_dir = 'E:\\Backup'
  15. # 又例如在 Mac OS X 和 Linux 下:
  16. target_dir = '/Users/swa/backup'
  17. # 要记得将这里的目录地址修改至你将使用的路径
  18. # 3. 备份文件将打包压缩成 zip 文件。
  19. # 4. zip 压缩文件的文件名由当前日期与时间构成。
  20. target = target_dir + os.sep + \
  21. time.strftime('%Y%m%d%H%M%S') + '.zip'
  22. # 如果目标目录还不存在,则进行创建
  23. if not os.path.exists(target_dir):
  24. os.mkdir(target_dir) # 创建目录
  25. # 5. 我们使用 zip 命令将文件打包成 zip 格式
  26. zip_command = 'zip -r {0} {1}'.format(target,
  27. ' '.join(source))
  28. # 运行备份
  29. print('Zip command is:')
  30. print(zip_command)
  31. print('Running:')
  32. if os.system(zip_command) == 0:
  33. print('Successful backup to', target)
  34. else:
  35. print('Backup FAILED')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 14:42:03 | 显示全部楼层
看看zip_command是否正确,类似'zip -r /Users/swa/backup/20200402141434.zip /Users/swa/notes';
如果这个没问题,os.system(zip_command)会有zip的运行提示,你看看有什么内容,比如如果有:zip I/O error: Permission denied,zip error: Could not create output file (xxx),那就是权限问题,这样改改:
zip_command = 'sudo zip -r {0} {1}'.format(target,' '.join(source)),运行时需要输入管理员密码。
这段代码号称可以在windows下用,但是默认windows下是没有zip程序的,这里的zip是linux下内置的,所以这段代码只能在linux下使用。其实python自带zip包,叫zipfile,可以进行备份,不用调用外部程序,兼容性好。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 15:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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