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
    +关注

    关注

    53

    文章

    4752

    浏览量

    84039
收藏 人收藏

    评论

    相关推荐

    服务器数据恢复—raid5阵列上层文件夹丢失的数据恢复案例

    服务器存储数据恢复环境: DroboPro FS网络存储,共8块SAS硬盘,组建了一组raid5磁盘阵列。 服务器存储故障: 存储中有一个共享文件夹丢失,该文件夹存放了重要数据。
    的头像 发表于 06-21 10:10 157次阅读
    服务器数据恢复—raid5阵列上层<b class='flag-5'>文件夹</b>丢失的数据恢复案例

    引用外部文件夹中的头文件时,如何让VSCODE不提示波浪线错误?

    各位好: 我将常用的组件放在项目文件夹以外的某个地方,尝试在项目内引用此文件夹下的组件,失败,在代码中无法include相关头文件。我在main组件中也添加了requires,任然失败。 另外,在VSCODE中,当我引用外部
    发表于 06-07 08:19

    Cubemax设置什么会生成Core文件夹

    Cubemax设置什么会生成Core文件夹?有的直接是子文件夹,没有Core
    发表于 05-31 07:45

    Linux系统中共享文件找不到怎么办

      1.首先输下面命令查看是否真的设置成功共享文件夹 vmware-hgfsclient 如果确实已经设置过共享文件夹将输出window下共享文件夹名字 2.确认自己已设置共享文件夹
    的头像 发表于 05-11 08:49 495次阅读
    Linux系统中共享<b class='flag-5'>文件</b>找不到怎么办

    飞凌嵌入式ElfBoard ELF 1板卡-ubuntu创建共享文件夹

    ELF1、ELF1S开发板_软件教程_V1》“2.1.4.3 VMware Tools 安装”小节安装VMware Tools。1.首先在Windows下创建共享文件夹,这里我命名为ELF1-share
    发表于 04-18 11:14

    Linux系统共享文件缺失的解决策略

    如果确实已经设置过共享文件夹将输出window下共享文件夹名字
    的头像 发表于 04-15 10:25 636次阅读
    Linux系统共享<b class='flag-5'>文件</b>缺失的解决策略

    Browser Company推出Arc浏览器实时文件夹功能,兼容Git

    当用户发布PR时,Arc浏览器可自动识别这一情况,并在侧边栏创建一个名为“Pull Requests”的GitHub实时文件夹。该文件夹将持续自动更新,展示用户所创建、分配、审查及提及的所有PR信息。
    的头像 发表于 04-12 15:37 424次阅读

    【操作指引】铁威马NAS加密文件夹创建和使用教程

    共享文件夹是一个网络存储空间。您可以建立数个共享文件夹来存放不同类别的数据,或提供给不同的用户或用户群组来存取文件。   一旦加密共享文件夹被创建后,只有管理员将该共享
    的头像 发表于 04-02 14:17 636次阅读
    【操作指引】铁威马NAS加密<b class='flag-5'>文件夹</b>创建和使用教程

    荣小菜补钙记第61期_LabVIEW之递归文件文件夹

    荣小菜补钙记第61期_LabVIEW之递归文件文件夹 同步更新于 WeChat:荣小菜在补钙 大家好,我是荣小菜,本期主要讲解如何使用LabVIEW编程实现查询目标文件夹中的全部
    发表于 02-16 21:36

    关键字搜索文件夹中某个TXT文件

    文件夹中随时创造TXT文件,如何及时选出刚创造的文件?或关键字搜索出需要的TXT文件
    发表于 02-06 15:22

    如何在IFX ConfigWizard中更改文件夹/文件夹结构?

    我们在使用 Tle989x 的项目中使用配置向导。 问题是,该工具似乎期望使用硬编码的文件夹结构,这与我们构建 git 存储库的方式不兼容。 我们尝试手动对其进行更改,但我们没有尝试强制/猜测
    发表于 01-22 06:26

    linux 显示文件夹所有文件的属性

    在Linux中,您可以使用 ls 命令来显示文件夹所有文件的属性。使用 ls -a 命令可以查看包括隐藏文件在内的所有文件。每个文件的属性将
    的头像 发表于 11-13 16:52 772次阅读

    如何用Python来实现文件系统的操作功能

    通过 os.path.join() 方法来实现 os.path. join ( 'output' , 'Book1.xlsx' ) output outputBook1.xlsx 确认某文件夹或者
    的头像 发表于 10-30 14:27 317次阅读
    如何用<b class='flag-5'>Python</b>来实现<b class='flag-5'>文件</b>系统的操作功能

    VSCODE怎么导入MDK的工程文件夹

    VSCODE怎么导入MDK的工程文件夹
    发表于 10-09 07:04

    RT-Thread开发GD32F450使用scons添加新的文件夹

    开发板使用的是gd32f450zk,想在工程中新建文件夹,通过scons管理
    的头像 发表于 10-08 16:44 734次阅读
    RT-Thread开发GD32F450使用scons添加新的<b class='flag-5'>文件夹</b>