侧边栏壁纸
  • 累计撰写 5 篇文章
  • 累计创建 2 个标签
  • 累计收到 1 条评论
标签搜索

目 录CONTENT

文章目录

使用python,完成电脑文件夹到U盘文件夹的自动同步

想念丶
2023-04-30 / 0 评论 / 0 点赞 / 1,409 阅读 / 805 字

1、系统环境介绍


笔记本采用win11系统。

安装python3.

使用到的库:

dirsync #文件同步主要靠他。

winotify #可以调用windows系统通知,用来提示同步信息。

openpyxl #读取配置文件信息,当然你可以用其他库。

os #判断配置文件是否存在

2、代码


from dirsync import sync    #同步文件主要靠他。
from winotify import Notification    #可以调用windows系统通知,用来提示同步信息。
import openpyxl    #读取配置文件的配置内容。
import os    #判断配置文件是否存在。
if os.access(r"M:\config.xlsx", os.F_OK):    #判断配置文件是否存在。
    config = openpyxl.load_workbook(r"M:\config.xlsx")    #如存在则通过openpyxl打开配置文件
    sheet = config.active    #打开工作簿(我是这样理解的。。。)
    同步使能 = sheet['B2']    #读取B2单元格的值
    if 同步使能.value == 1:    ##B2单元格的值如果为1,则执行以下:
        source_path = "M:\MissDB"   #源路径
        target_path = "D:\MissDB"   #目的路径
        sync(source_path, target_path, 'sync') #由源头到目的路径备份
        sync(target_path, source_path, 'sync') #由源头到目的路径备份
        toast = Notification(app_id="备份成功通知",    #发消息到windows通知
                             title="U盘同步成功",
                             msg="路径:由U盘到笔记本;再由笔记本到U盘。已完成同步。",
                             icon=r"D:\MissDB\3、脚本文档\9、图片\Python.png")
        toast.show()
    else :    #配置选项未打开则执行
        toast2 = Notification(app_id="备份失败通知",
                             title="U盘同步失败",
                             msg="未同步,配置选项未开启。",
                             icon=r"D:\MissDB\3、脚本文档\9、图片\Python.png")
        toast2.show()
else :    #配置文件不存在则执行
    toast3 = Notification(app_id="备份失败通知",
                         title="U盘同步失败。",
                         msg="未同步,未加载到配置文件。",
                         icon=r"D:\MissDB\3、脚本文档\9、图片\Python.png")
    toast3.show()    

3、任务计划程序设置

(1)、触发器设置

image

(2)、执行操作设置

image 1

4、实现效果和注意事项


1、插入特定U盘,自动触发脚本,实现电脑本地文件夹和U盘文件夹的双向同步备份。(也可双击触发脚本)

2、可通过U盘根目录下的excel配置文件设置是否开启备份,使能为“1”则开启备份。

3、建议将U盘的驱动器号和路径自定义为较大的字母(我定义为M盘)。

4、脚本名称及路径:“C:\Auto\文件同步.pyw

5、配置文件名称、路径及内容:“M:\config.xlsx”

image 2

6、现有的欠缺:插入U盘和拔出U盘都会触发脚本,理想是只有插入U盘时才触发。暂未解决。

7、小白的第一个成型脚本,只为实现功能,不为靠代码吃饭。所以云云。。。。

0

评论区