当前位置: 代码网 > it编程>前端脚本>Python > Python实现定时自动备份文件

Python实现定时自动备份文件

2025年01月01日 Python 我要评论
简介通过generate.bat文件生成外置配置文本文件config.ini,python调用config.ini外置变量参数,从而实现设置定时备份文件的任务。1.bat脚本部分代码@echo off

简介

通过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自动备份文件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com