Python实现定时自动备份文件

 更新时间:2024年12月31日 10:48:04   作者:hvinsion  
随着数据的不断增长,文件备份变得越来越重要,这篇文章主要为大家详细介绍了如何使用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自动备份文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python选择网卡发包及接收数据包

    Python选择网卡发包及接收数据包

    今天小编就为大家分享一篇关于Python选择网卡发包及接收数据包,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • 浅谈tensorflow模型保存为pb的各种姿势

    浅谈tensorflow模型保存为pb的各种姿势

    这篇文章主要介绍了浅谈tensorflow模型保存为pb的各种姿势,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python不规范的日期字符串处理类

    Python不规范的日期字符串处理类

    这篇文章主要介绍了Python不规范的日期字符串处理类,可以对一些非正规的日期字符串进行解析、转换、比较等,需要的朋友可以参考下
    2014-06-06
  • Python PyQt5模块实现一个浏览器的示例代码

    Python PyQt5模块实现一个浏览器的示例代码

    在项目开发中,有的应用程序可以运行在web浏览器,本文主要介绍了Python PyQt5模块实现一个浏览器的示例代码,分享给大家,感兴趣的可以了解一下
    2021-07-07
  • 详解Python openpyxl库的基本应用

    详解Python openpyxl库的基本应用

    这篇文章主要介绍了Python openpyxl库的基本应用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-02-02
  • 使用python实现链表操作

    使用python实现链表操作

    链表是计算机科学里面应用最广泛的数据结构之一。这篇文章主要介绍了使用python实现链表操作,需要的朋友可以参考下
    2018-01-01
  • python中的List sort()与torch.sort()

    python中的List sort()与torch.sort()

    这篇文章主要介绍了python中的List sort()与torch.sort()使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Scrapy启动报错invalid syntax的解决

    Scrapy启动报错invalid syntax的解决

    这篇文章主要介绍了Scrapy启动报错invalid syntax的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 详解利用Python scipy.signal.filtfilt() 实现信号滤波

    详解利用Python scipy.signal.filtfilt() 实现信号滤波

    这篇文章主要介绍了详解利用Python scipy.signal.filtfilt() 实现信号滤波,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • Python全面分析系统的时域特性和频率域特性

    Python全面分析系统的时域特性和频率域特性

    今天小编就为大家分享一篇Python全面分析系统的时域特性和频率域特性,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论