Python實(shí)現(xiàn)定時自動備份文件
簡介
通過generate.bat文件生成外置配置文本文件config.ini,python調(diào)用config.ini外置變量參數(shù),從而實(shí)現(xiàn)設(shè)置定時備份文件的任務(wù)。
1. bat腳本部分代碼
@echo off set logname=\backup.log echo [Config] > config.ini echo 輸入拷貝的需備份文件夾路徑: set /p file_folder=folderDir= >>config.ini echo 輸入拷貝的目的文件夾路徑: echo %file_folder% >>config.ini set /p back_folder=folderDir_Backup= >>config.ini echo %back_folder% >>config.ini echo 輸入備份日志文件夾緩存路徑: set /p log_folder=logDir= >>config.ini echo %log_folder%%logname% >>config.ini echo 輸入計劃啟動任務(wù)的時間: set /p schedule_time=time= >>config.ini echo %schedule_time% >>config.ini rem 將路徑中'\'轉(zhuǎn)換成'//' set strFilePath=config.ini set strOld=\ set strNew=// setlocal enabledelayedexpansion for /f "tokens=*" %%i in (%strFilePath%) do ( set "var=%%i" if not !var!.==. ( set "var=!var:%strOld%=%strNew%!" echo !var!!>>%strFilePath%.bk ) ) move /y %strFilePath%.bk %strFilePath% >nul echo 正在轉(zhuǎn)換生成配置文件config.ini,請稍等... timeout -t 3 >nul exit
2.cmd窗口填寫需要備份的路徑以及時間參數(shù)
3.config.ini 配置文件自動生成內(nèi)容
[Config] folderDir= E://a folderDir_Backup= E://b logDir= E://backup.log time= 10:16
4.日志文件生成
5.backup.py 相關(guān)代碼
import sys import os import time import datetime from datetime import datetime,timedelta import shutil import configparser #讀取config.ini文件變量 config = configparser.ConfigParser() config.read('config.ini') fileFolder = config.get('Config', 'folderDir') fileNamedir = config.get('Config', 'folderDir_Backup') filebak_log = config.get('Config', 'logDir') #讀取時間參數(shù) def set_schedule_time(time_str): config.set('Config', 'time', time_str) with open('config.ini', 'w') as configfile: config.write(configfile) ''' #備份 def work(): replaced_string = fileNamedir.replace('//', '\\') #替換路徑中的"http://"字符 fileName = (replaced_string) + r'\Backup_' + time.strftime('%Y%m%d%H%M') print('----開始備份----') shutil.make_archive(fileName, 'zip', root_dir=fileFolder) print('----備份完成--->' + time.strftime('%Y%m%d%H%M')+'.zip') with open(filebak_log, 'a') as filebak: #生成日志 filebak.write(time.strftime('%Y-%m-%d %H:%M',time.localtime())+':'+'Successfull backup to %s'% fileName+'.zip!\n') #主函數(shù) def main(): print('----工具啟動----') while True: while True: # 獲取當(dāng)前時間 now = datetime.now() current_time = f"{now.hour:02d}:{now.minute:02d}" if current_time == config['Config']['time']: break work() time.sleep(180) if __name__ == '__main__': main() #print(list(os.walk(fileNamedir)))
到此這篇關(guān)于Python實(shí)現(xiàn)定時自動備份文件的文章就介紹到這了,更多相關(guān)Python自動備份文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
導(dǎo)入pytorch時libmkl_intel_lp64.so找不到問題解決
這篇文章主要為大家介紹了導(dǎo)入pytorch時libmkl_intel_lp64.so找不到問題解決示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加簽驗(yàn)簽
這篇文章主要介紹了Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加簽驗(yàn)簽,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-12-12Python數(shù)據(jù)分析模塊pandas用法詳解
這篇文章主要介紹了Python數(shù)據(jù)分析模塊pandas用法,結(jié)合實(shí)例形式詳細(xì)分析了Python數(shù)據(jù)分析模塊pandas的功能、常見用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09