随着数据的不断增长,文件备份变得越来越重要,这篇文章主要为大家详细介绍了如何使用Python实现定时自动备份文件功能,需要可以了解下
通过generate.bat文件生成外置配置文本文件config.ini,python调用config.ini外置变量参数,从而实现设置定时备份文件的任务。
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 输入计划启动任务的时间:
set /p schedule_time=time= >>config.ini
echo %schedule_time% >>config.ini
rem 将路径中'\'转换成'//'
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 正在转换生成配置文件config.ini,请稍等...
timeout -t 3 >nul
exit
2.cmd窗口填写需要备份的路径以及时间参数
3.config.ini 配置文件自动生成内容
[Config]
folderDir= E://a
folderDir_Backup= E://b
logDir= E://backup.log
time= 10:16
4.日志文件生成
5.backup.py 相关代码
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')
#读取时间参数
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('//', '\\') #替换路径中的"//"字符
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')
#主函数
def main():
print('----工具启动----')
while True:
while True:
# 获取当前时间
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)))
到此这篇关于Python实现定时自动备份文件的文章就介绍到这了,更多相关Python自动备份文件内容请搜索QQ沐编程以前的文章或继续浏览下面的相关文章希望大家以后多多支持QQ沐编程!
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END