python文件备份问题解决

1、需求:我想要一个给我所有的重要文件备份的程序

2、需求分析:我们如何确定该备份哪些文件?备份保存在哪里?我们怎样存储备份?

3、程序设计:

列一个程序如何工作的顺序表:

(1)需要备份的文件和目录由一个列表指定。

(2)备份应该保存在主备份目录中

(3)文件备份成一个.zip文件。

(4)zip存档的名称是当前的日期和时间。

(5)我们使用标准的zip命令。可以选择其他命令,但是必须有命令行界面。这样我们才可以从脚本中传递参数。

4、解决方案:

import os
import time

# 例如在Windows下:
source = ['"D:\\My Documents"','D:\\Code']

# 例如在Windows下:
target_dir = 'E:\\Backup'

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) #创建目录

# 使用zip命令将文件打包成zip格式
zip_command = 'zip -r {0} {1}'.format(target,' '.join(source))


#运行备分
print(zip_command)

if os.system(zip_command) == 0:
print('Successful backup to',target)
else:
print('Backup FAILED.')

运行后
 

 

5、测试
(1)以上程序没有成功,在os.system前设置一条语句print(zip_command)。运行程序。

 

 

复制打印出来的zip_command命令到shell提示符,看看能否正常运行。

 

命令失败,查看zip命令手册,到底是什么出错了。(如果命令正常,查看python程序是不是写错了。)
在这里是因为我的电脑不支持zip的命令,但是我安装了WINRAR,所以可以使用rar命令代替zip命令。
将上面的zip_command = 'zip r {0} {1}'.format(target,' '.join(source))注释掉。换成zip_command = 'rar a {0} {1}'.format(target,' '.join(source))
运行。
依然失败。
打开电脑自带的cmd窗口,打入rar直接运行,找不到。这就是因为rar的环境变量没有设置。
在windows环境变量的PATH中加入rar.exe所在的目录地址。重新打开cmd,运行rar就可以找到了。
关闭python,重新打开,再运行修改后的程序,成功了。

 

猜你喜欢

转载自www.cnblogs.com/tangtang-angle/p/9234627.html