第一次用Python试着写一个在Windows环境下的备份脚本

  仅以此小文字记录今天的debug心得。。

  今天是这么多天自学以来第一次运用Python解决了一个实际的完整意义上的问题,感谢网上一些网友的分享,但是今天碰到的问题并不是在网上都能找到答案,因此也有一些自己的小心得。

  解决一个问题,最关键的还是先确定解决问题的思路,本文的思路如下:

 1. 指定需要备份的文件(目录)
 2. 指定备份文件保存的目标文件(目录),这里就可以事先建立一个空目录
 3. 文件备份成一个zip文件。
 4. zip存档的名称是当前的日期和时间。
 5. 我们使用标准的zip命令,它通常默认地随Linux/Unix发行版提供。Windows用户可以使用Info-Zip程序。注意你可以使用任何地存档命令,只要它有命令行界面就可以了,那
   样的话我们可以从我们的脚本中传递参数给它。
 

  ###对于5的操作,可以先在开始里面键入cmd,在打开的界面里面输入zip,如果系统有zip的话,说明系统可以直接调用zip命令。本人是先装了一个Info_zip程序,按照网上网友(http://blog.sina.com.cn/s/blog_795289a40101qdg5.html)的方法执行后还是提示错误,解决办法:需要将路径加入到环境变量的path中去,否则会提示“‘zip’ 不是内部或外部命令,也不是可执行程序”)

 我的程序如下,备注里面也有自己的debug体会:

# -*- coding: utf-8 -*-
#解决的问题:文件备份————版本一
import os
import time
#1.the file and directories to be backed up are specified in a list.
#source=["/home/swaroop/byte","/home/swaroop/bin"]
#if you are using windows,use 
source=["E:\\kindle","D:\\movie\\hh"]#or something like that 注意Python下\为转义字符,因此写成\\

#the backup must be stored in a main backup directory
#target_dir="/mnt/e/backup/" #remenmber to change this to what you will be using 
target_dir="D:\\backup\\"
##这里出现的一个错误,之前吧backup文件建在了d盘,但是在debug前粗心的写成了e盘,导致运行脚本时说zip的I/O口错误。

#3.the files are backed up in to a zip file
#4.the name of the zip archieve is the current data and time
target=target_dir+time.strftime("%Y%m%d%H%M%S")+".zip"
#加法操作符来 级连 字符串
print target

#5.we use the zip command(in unix/linux)to put the files in a zip archive
zip_command="zip -qr %s %s"%(target,' '.join(source))
##zip 是Windows系统自带的,在开始里面输入cmd,弹出来的脚本界面里面输入zip,可以详细了解到-q和-r的作用


#run the backup 
if os.system(zip_command)==0:
 print "successful backup to",target
else:
 print "backup FAILED"
 
cmd后键入zip,得到的内容如下,可以详细学习zip_command里面的内容。


关于join

   Python中有 join() 和 os.path.join()两个函数,具体作用如下:
    join():连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串
    os.path.join():  将多个路径组合后返回


1、join()函数说明:

  语法:  'sep'.join(seq)

  参数说明
  sep:分隔符。可以为空
  seq:要连接的元素序列、字符串、元组、字典
  上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

  返回值:返回一个以分隔符sep连接各个元素后生成的字符串

2、os.path.join()函数

   语法:  os.path.join(path1[,path2[,......]])

   返回值:将多个路径组合后返回

   注:第一个绝对路径之前的参数将被忽略


  

  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值