0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Python同步文件夹

454398 来源:网络整理 作者:网络整理 2019-12-11 14:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

该说明将向您展示如何使两个文件夹(及其中的所有文件夹)保持同步,因此一个是另一个的直接副本。非常适合在本地将工作备份到云/网络服务器或USB驱动器。无需编程经验即可完成本教程。请注意,这仅适用于Windows,尽管该过程在Mac和Linux上是相似的。

我有一台旧的Windows计算机,我将其设置为服务器以执行各种功能,其中之一是便宜的网络连接既充当媒体服务器又备份我家庭所有计算机数据的存储。

由于我的家人都希望在自己的PC上本地工作,因此我们需要一种简便的方法来定期备份数据。我还需要一种通过在服务器PC上的两个硬盘上实施类似RAID的方法来加倍备份的方法。我也不想支付任何软件费用(是的,我很st我)。因此,所有的免费软件都倾向于弹出窗口,甚至会因同步时间长和CPU使用率过高而减慢PC的速度,这很烦人。

因此,您只需付出一点点努力,我写了一个python脚本,它将同步我们所有需要的文件夹。然后,我可以自定义该文件并将其作为可执行文件分发给家庭,可以将窗口设置为在后台定期运行。

第1步:安装Python和依赖项

要创建可分发程序,您需要在自己的计算机上安装python。电脑。不幸的是,我们将使用的模块pyinstaller不适用于python 3.6,因此您需要在计算机上安装python 3.5或更低版本。为此,请点击https://www.python.org/downloads/上的Web链接,然后向下滚动直到找到所需的版本。我用的是3.5.3。

通过确保选中“添加到PATH”复选框来完成安装。

安装完成后,打开命令提示符并安装我们需要的python模块,然后键入请按照以下步骤操作并按照要求进行操作:

pip install pyinstaller

pip install dirsync

第2步:Python脚本

脚本很简单,只有两行,将以下内容复制并粘贴到IDLE(与Python一起安装)或记事本中,另存为“ DirectorySync.py”:

来自目录同步导入同步

sync(‘C:\ FOLDER_A’,‘E:\ FOLDER_B’,‘sync’,purge = True)

请确保将上面的两个文件夹更改为要同步的两个文件夹。

第一行导入我们先前安装的dirsync模块。

第二个执行同步。第一个文件夹是源文件夹,第二个文件夹是目标文件夹,“ sync”是告诉sync函数要实现哪种同步模式。添加purge = True告诉函数删除目标文件夹中不再位于源文件夹中的任何内容。还有其他选项可以根据您的需要实施。

上面配置的方式也将同步顶级文件夹中的所有文件夹,如果需要可以停止。如果要同步多个顶级文件夹,只需使用sync()函数向代码中添加更多行。有关更多选项和帮助,请参见以下链接:

https://pypi.python.org/pypi/dirsync/2.2.2

步骤3:创建。 exe

要创建可执行文件,我们现在需要返回到命令提示符。

键入以下内容,将文件夹路径替换为DirectorySync.py脚本的路由,在最后一步中创建:

pyinstaller -F -w C:/Route_to_your_folder/DirectorySync.py

在python脚本的文件夹位置中创建一系列文件夹:__ pycache __,build,dist和另外两个文件。现在dist文件夹中有一个名为DirectorySync.exe的文件,运行该文件将在后台执行同步。该文件可以按原样分发给任何人,然后他们可以运行同步,而无需在计算机上安装python。

解释在命令提示符下键入的粗体字中的内容:

‘pyinstaller’告诉计算机使用我们先前下载的模块pyinstaller

‘-F’是一个选项,它告诉pyinstaller仅生成一个可执行文件,而不生成一系列可执行文件

‘-w’是一个选项,它告诉计算机每次运行脚本时不显示命令提示符。

路径为python脚本的路径。

有关更多选项和帮助,请参见以下链接:

https://pyinstaller.readthedocs.io/en/stable/usage 。..

步骤4:自动运行

您现在可以同步任何文件夹了只需双击可执行文件,而无需重复复制,粘贴和删除。但是,我们要更进一步,让Windows自动运行该过程,因此您不必担心。

为此,我们将使用Windows随附的Task Scheduler程序,该过程是基于Windows 10,但在其他Windows平台上几乎相同。

从开始菜单打开任务计划程序。

在右侧选择“创建任务”

为其提供名称和描述,并在底部确保已针对正确的操作系统对其进行了配置。

在“触发器”选项卡上,创建一个新触发器通过单击左下角的“新建”,在新的弹出窗口中选择所需的配置,我选择从“登录”开始执行任务,并每小时重复一次,因此我知道我每小时都有工作备份。单击确定。

在“操作”选项卡上,以相同的方式创建一个新操作。我们需要做的是启动一个默认程序。浏览到我们之前创建的可执行文件,然后选择。注意:-如果在创建任务后移动可执行文件,则该任务以及因此同步将无法完成。

在“条件”选项卡上,取消选中电源设置,使其也将依靠电池运行

单击“确定”,您现在已经创建了任务。

重新启动计算机,过一会儿,检查目标文件夹位置,看看同步是否正常,请注意,如果您的文件夹很大,则同步可能需要一段时间才能在第一时间复制所有文件夹。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89590
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VS Code 中`xiaozhi-esp32` 项目文件夹 修改 I2C 设备地址为 `0x78`

    VS Code 中`xiaozhi-esp32` 项目文件夹 修改 I2C 设备地址为 `0x78`
    的头像 发表于 11-28 07:30 529次阅读

    LABVIEW 2023 Q1调用python后一直报错1671

    \\Yang\\AppData\\Local\\National Instruments\\NIPythonInterface进入该路径发现是空文件夹,没有the log files。程序用的是范例
    发表于 11-12 09:51

    QEMU快速上手(Win),源码文件夹对不上是为什么?

    /rt-thread-smart/quick-start/qemu-win/quickstart 搭建VSCode的调试环境,卡在了第一步,我下载下来的源码是UBuntu20环境的,,而不是Windows环境的,和文档里的文件夹对不上; 想问下各位,是怎么回事?要怎么搭建VSCode调试环境?
    发表于 09-29 06:57

    实现litterfs后,打不开文件夹怎么解决?

    在实现文件系统后,进入不了文件夹,但是能创建文件夹,使用ls也能看到相应文件夹下的内容 这是为什么
    发表于 09-28 12:27

    请问bsp文件夹中各芯片厂商的外设drv文件都是由芯片厂商自己开发的吗?

    添加一个新的芯片厂商到bsp文件夹中(rt-thread-v4.1.0bspxx32), xx32目录下的drv文件需要厂商自己开发上传吗? 搜了下相关资料,有部分说法是社区开发者根据厂商提供的资料来统一开发,是这样的吗?
    发表于 09-25 06:00

    软件包加入后不显示packages文件夹是怎么回事?

    软件包加入后不显示packages文件夹,使用rt——thread标准版,基于星火一号开发板
    发表于 09-19 08:28

    请问rtt studio 的文件夹打红叉什么意思?

    rtt studio 的文件夹打红叉什么意思?而且文件夹里面实际是有文件的,但是浏览不出来。
    发表于 09-18 06:34

    RTT如何添加文件夹并加入编译?

    想把一个新的工程文件夹(包含若干个源文件和头文件)放入同一个工程内编译。 试了下把在文件系统添加了文件夹到相关位置,rtthread stu
    发表于 09-15 07:50

    在对庐山派K230的SD卡data文件夹进行删除和新件文件夹时无法操作,且训练时线程异常,怎么解决?

    下删除one文件夹,结果显示直接断开连接,后来操作data文件夹,显示写保护,最后再次操作又删掉了 3.我可以把SD卡里面的图片复制出来在AICube里面训练,但是一开始训练就会提示线程工作异常 我
    发表于 08-01 08:03

    迅为RK3588开发板Android13系统挂载samba共享文件夹-怎么开启Windows共享目

    注:推荐新建用户以及共享目录都是用英文。 windows 系统中,文件夹共享需要设置指定用户与密码,通过输入用户和密码进行连接,在设置共享时系统中有 Everyone 所有人设置,允许所有人直接
    的头像 发表于 06-25 10:25 409次阅读
    迅为RK3588开发板Android13系统挂载samba共享<b class='flag-5'>文件夹</b>-怎么开启Windows共享目

    KT142A 语音芯片插播功能使用指南及文件存储命名规则

    语音芯片在游戏机、电梯等设备中存在插播需求,逻辑为播放背景音乐时触发提示音播放,播完继续背景音乐,KT142A 插播指令需按规则使用,提示音文件要放在 “ADVERT1-ADVERT9” 文件夹
    的头像 发表于 06-21 13:46 828次阅读
    KT142A 语音芯片插播功能使用指南及<b class='flag-5'>文件</b>存储命名规则

    使用RASC生成Keil工程

    手动新建一个名为“Workspace_Keil”的文件夹,并将该文件夹作为我们的工作空间,我们的所有Keil工程都会放在这个文件夹里面。值得注意的是:为了避免编译错误,该工作空间文件夹
    的头像 发表于 05-15 14:46 887次阅读
    使用RASC生成Keil工程

    如何按层级数获取文件夹名称(或路径),并依据层级数分组?

    第一组是主文件夹,第二组是次级文件夹,依次类推
    发表于 04-25 14:12

    CUBEMX在线升级,保存在软件子目录下的工程文件夹自动给删掉了,为什么?

    这是识别了不是软件的文件夹自动删掉?我已经重新试过一次了,退回6.12版本然后在线升级,果然新建的工程文件升级后 被删掉了
    发表于 03-07 08:08

    为什么无法使用图像文件夹执行对象检测Python演示?

    使用自定义固态盘 Mobilenet 执行对象检测,并使用自定义脚本在文件夹中包含多个图像。 每张图像上的检测结果都有相同的边框位置。
    发表于 03-07 07:51