在window系統上對指定的目錄天天進行備份

# -- coding: utf-8 --  
#date=2018-12-17
#author=831
##腳本功能,指定一個dir_list,而後執行該腳本,該腳本會對dir_list中的目錄進行備份,dir_list的空目錄會被刪除 import os
import re
import sys
import shutil
from datetime import datetime, date, timedelta
##定義昨天的日期
YESTERDAT = (date.today() + timedelta(days = -1)).strftime("%Y-%m-%d")
#定義一個文件目錄的list,
DIR_LIST = ["F:/log/733/","F:/log/738/","F:/log/829/","F:/log/1136/"]
def mkdir(path):
    # 去除首位空格
    path = path.strip()
    # 去除尾部 \ 符號
    path = path.rstrip("\")
    # 判斷路徑是否存在
    # 存在     True
    # 不存在   False
    isExists = os.path.exists(path)
    # 判斷結果
    if not isExists:
        # 若是不存在則建立目錄
        # 建立目錄操做函數
        os.makedirs(path)
        print(path + ' 建立成功')
        return True
    else:
        # 若是目錄存在則不建立,並提示目錄已存在
        print(path + ' 目錄已存在')
        return False
##刪除空目錄的函數
def delete_null_dir(dirr):
    #判斷目錄是否存在
    if os.path.isdir(dirr):
        for p in os.listdir(dirr):
            d  = os.path.join(dirr,p)
            print(d)
            if (os.path.isdir(d) == True):
                delete_null_dir(d)
    if not os.listdir(dirr):
        os.rmdir(dirr)
        print('移除空目錄: ', dirr)函數

for dir in DIR_LIST:
    #建立目錄
    mkdir(dir + YESTERDAT)
    #列出一個目錄下的全部文件和目錄,保存到一個list裏面
    dirs = os.listdir(dir)
    for file in dirs:
        #正則匹配,匹配以數字開頭的文件或者目錄,沒有匹配到會返回None,
        ret = re.match('[^0-9]', file)
        #根據返回值對文件進行操做
        if ret == None:
            pass
        else:
            print('非空')
            shutil.move(dir  +"/" +  file,dir + YESTERDAT)
    #刪除空目錄
    delete_null_dir(dir + YESTERDAT)ip

相關文章
相關標籤/搜索