先说说这个脚本的作用:对指定路径的文件进行压缩备份到另一个指定的路径,并且压缩文件的文件名用当时的日期+时间命名。
先是对着《简明Python教程》上的代码敲的,一堆错误,书上给的是linux系统的代码,windows差距太大了。先放代码,之后慢慢总结。
1 import os 2 import time 3 import sys 4 5 #1.文件目录 6 source=r'F:\file\b.txt' 7 8 #2.备份必须存储在主备份目录中 9 target_dir='F:\\' 10 11 #3.文件备份成一个zip文件 12 #4.这个zip文件的文件名是现在的日期和时间 13 target=target_dir+time.strftime('%Y%m%d%H%M%S')+'.rar' 14 15 zip_command="rar a %s %s -r" % (target,source) 16 17 #5.os.system()成功返回0,失败返回1 18 if os.system(zip_command)==0: 19 print('Successfli backup to',target) 20 else: 21 print('Backup FAILED') 22 print(os.system(zip_command)) 23 print(zip_command)
① 先是第6行的地址,在linux里面不需要加前面的r,windows的地址前加r 防止地址的\转义字符,去掉r ,地址就变成了F:ile.txt 这样的。
② 在windows里一般不用zip而用rar,但是zip_command="rar a %s %s -r" % (target,source) 这一行代码我改了很久很久,弄了一晚上没弄好,第二天早上来实验室改了两下莫名其妙的就好了,而且我打印zip_command 是rar a F:\20171007091047.rar F:\file\b.txt 我还特地去cmd运行了下 能压缩,可是我的os.system(zip_command)一直是1,也就是失败。今天早上 一改就好了我也不知道昨天错在哪。。。。。。。。