Phthon十、备份脚本

windows下运行

版本一:
import os
import time
source = [r'D:\work']        #源目录,可以有多个,用逗号隔开
target_dir = r'D:/work/work_backup/'    #目标目录
target = target_dir + time.strftime('%Y%m%d%H%M%S')+'.zip'
zip_command="winrar A %s %s"%(target,' '.join(source))
if os.system(zip_command)== 0:
print ('Successful backup to',target)
else:
print ('Backup FAILED')

注意:(1)"r"是告诉程序不要转义
      (2)把winrar的目录添加到环境变量中
      (3)time.strftime()函数获得当前的日期和时间·
     (4)%s不要加引号
版本二:
import os
import time
source = [r'D:\work']
target_dir = r'D:\work\work_backup'
today = target_dir + time.strftime('%Y%m%d')
now = time.strftime('%H%M%S')
if not os.path.exists(today):
os.mkdir(today)
print ('Successfully created directory', today)
target = today + os.sep + now + '.zip'
zip_command = "winrar A %s %s" % (target, ' '.join(source))
if os.system(zip_command) == 0:
print ('Successful backup to', target)
else:
print ('Backup FAILED')
注意:(1)是使用os.exists函数检验在主备份目录中是否有以当前日期作为名称的目录。如果没有,我们使用os.mkdir函数创建。
      (2)os.sep变量会根据你的操作系统给出目录分隔符,即在Linux、Unix下它
是'/',在Windows下它是'\\',而在Mac OS下它是':'。使用os.sep使程序具有移植性。
版本三:
import os
import time
source = [r'D:\work']
target_dir = r'D:\work\work_backup'
today = target_dir + time.strftime('%Y%m%d')
now = time.strftime('%H%M%S')
comment = input('Enter a comment --> ')
if len(comment) == 0:
target = today + os.sep + now + '.zip'
else:
target = today + os.sep + now + '_' + \
comment.replace(' ', '_') + '.zip'
if not os.path.exists(today):
os.mkdir(today)
print ('Successfully created directory', today)
zip_command = "winrar A %s %s" % (target, ' '.join(source))
if os.system(zip_command) == 0:
print ('Successful backup to', target)
else:
print ('Backup FAILED')
注意:(1)python3的版本中,把raw_input方法替换成了input方法
      (2)使用raw_input函数得到用户的注释,然后通过len函数找出输入的长度以检验用户是否确实输入了什么东西。
      (3)注释会被附加到zip归档名,就在.zip扩展名之前。把注释中的空格替换成下划线是因为处理这样的文件名要容易得多。

tar命令:
  tar = 'tar -cvzf %s %s -X /home/swaroop/excludes.txt' % (target, ' '.join(srcdir))#windows下没试过
  ● -c表示创建一个归档。
  ● -v表示交互,即命令更具交互性。
  ● -z表示使用gzip滤波器。
  ● -f表示强迫创建归档,即如果已经有一个同名文件,它会被替换。
  ● -X表示含在指定文件名列表中的文件会被排除在备份之外。例如,你可以在文件中指定
*~,从而不让备份包括所有以~结尾的文件。

最理想的创建这些归档的方法是分别使用zipfile和tarfile。它们是Python标准库的一部分。使用这些库就避免了使用os.system这个不推荐使用的函数,它容易引发严重的错误。

软件开发过程:
  1. 什么(分析)
  2. 如何(设计)
  3. 编写(实施)
  4. 测试(测试与调试)
  5. 使用(实施或开发)
  6. 维护(优化)

你可能感兴趣的:(windows,linux,python,脚本,OS)