第一个python程序:备份文件

由于平时每天下班时总是要将已写的代码备份,所以有了写个自动备份指定文件到压缩包的工具,简单过程如下:

1.删除项目编译产生的临时文件

2.将项目压缩至.rar压缩包并移至指定文件夹

3.备份完毕关机

方法:删除临时文件是用bat批处理,python调用,当然python自己可以,可是我刚接触,不熟;压缩是调用winrar的命令行,关机也是调用cmd。。。。

刚接触,先这样做,虽然直接用批处理就可以。源码如下

#-*- coding=gbk -*-
#filename:backup_ver1.py
import os
import time
import thread
myFlag=0
def timecount(n):
    for i in range(n,0,-1):
        global myFlag
        if myFlag == 0:
            print '%s钟后自动关机,取消请按【回车】...'%str(i)
        else:
            break
        time.sleep(1)
    if i==1:
        os.system('shutdown -s -t 0 -f')
        print '关机开始'
    print '线程自动退出'
    print '******关机取消已取消******'
    print '再次按【回车】键退出'
if __name__=='__main__':
    #删除临时文件,调用已经写好的bat文件
    batpath=ur'F:\项目\XXXX\源码\XX\Del.bat'
    ubatpath=batpath.encode('gbk')
    #备份文件
    source = ur'F:\项目\XXXX\源码\XX'
    target_dir=ur'D:\XX\\'
    target=target_dir+u'XX'+time.strftime('%Y%m%d')+'.rar'
    zip_command='rar a -k -r -s -m3 '+target+' '+source
    uzip_command = zip_command.encode('gbk')
    print 'Begin Backup ...'
    cmd=[ubatpath,uzip_command]
    if os.system('&&'.join(cmd)) == 0:
        print 'Successful backup to',target
    else:
        print 'Backup Failed!'
    print '------------------------备份结束,倒计时关机开始------------------------'
    #倒计时关机
    print '关机倒计时开始,按空格取消关机'
    thread.start_new_thread(timecount,(10,))
    if(raw_input()=='' ):
        myFlag=1
        print '****回车已按下****'
        raw_input()

在写这个小程序的时候遇到一个问题,半天才解决,郁闷,那就是中文编码的问题,这个问题在下片文章的记录说明下。

待改进:

1.压缩后的压缩包中的文件夹层数,这样压缩的是把待压缩的文件夹所在的所有上层目录都压缩进去了,要改进

2.尽量不调用cmd命令,用纯python代码编写

3.调用百度云接口,直接将压缩文件上传至百度云制定目录

这是暂时待改进的地方,有空写下

你可能感兴趣的:(第一个python程序:备份文件)