Python實(shí)現(xiàn)定時(shí)自動(dòng)備份文件
簡(jiǎn)介
通過(guò)generate.bat文件生成外置配置文本文件config.ini,python調(diào)用config.ini外置變量參數(shù),從而實(shí)現(xiàn)設(shè)置定時(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 輸入計(jì)劃啟動(dòng)任務(wù)的時(shí)間:
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,請(qǐng)稍等...
timeout -t 3 >nul
exit
2.cmd窗口填寫(xiě)需要備份的路徑以及時(shí)間參數(shù)

3.config.ini 配置文件自動(dòng)生成內(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í)間參數(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('----開(kāi)始備份----')
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('----工具啟動(dòng)----')
while True:
while True:
# 獲取當(dāng)前時(shí)間
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)定時(shí)自動(dòng)備份文件的文章就介紹到這了,更多相關(guān)Python自動(dòng)備份文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python字符串逆序的實(shí)現(xiàn)方法【一題多解】
今天小編就為大家分享一篇關(guān)于Python字符串逆序的實(shí)現(xiàn)方法【一題多解】,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
pymongo如何通過(guò)oplog獲取數(shù)據(jù)(mongodb)
使用MongoDB的oplog(操作日志)進(jìn)行數(shù)據(jù)同步是高級(jí)的用法,主要用于復(fù)制和故障恢復(fù),這篇文章主要介紹了pymongo通過(guò)oplog獲取數(shù)據(jù)(mongodb),需要的朋友可以參考下2023-09-09
python動(dòng)態(tài)文本進(jìn)度條的實(shí)例代碼
這篇文章主要介紹了python動(dòng)態(tài)文本進(jìn)度條的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
python設(shè)置環(huán)境變量的作用和實(shí)例
在本篇文章里小編給各位整理了關(guān)于python設(shè)置環(huán)境變量的作用和實(shí)例內(nèi)容知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)參考下。2019-07-07
利用python在Word文檔中創(chuàng)建和執(zhí)行條件郵件合并
郵件合并域和IF域是Word文檔中兩種非常實(shí)用的域,前者可以用來(lái)進(jìn)行郵件合并,根據(jù)數(shù)據(jù)批量創(chuàng)建定制的Word文檔,本文講介紹如何使用Python在Word文檔中創(chuàng)建條件郵件合并域以及執(zhí)行條件郵件合并,需要的朋友可以參考下2024-08-08
Python設(shè)置Socket代理及實(shí)現(xiàn)遠(yuǎn)程攝像頭控制的例子
這篇文章主要介紹了Python設(shè)置Socket代理及實(shí)現(xiàn)遠(yuǎn)程攝像頭控制的例子,皆是對(duì)socket模塊的實(shí)際運(yùn)用,需要的朋友可以參考下2015-11-11
Python基礎(chǔ)教程之淺拷貝和深拷貝實(shí)例詳解
這篇文章主要介紹了Python基礎(chǔ)教程之淺拷貝和深拷貝實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07

