iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python同步文件
  • 592
分享到

Python同步文件

文件Python 2023-01-31 07:01:30 592人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

最近在做python开发,研究了技术大牛写的脚本,在他的脚本上做了优化。优化脚本已在做过测试还是挺好用的,如果你觉得不错就直接拿到生产用吧。先直接放代码出来:-----------------------------------------

最近在做python开发,研究了技术大牛写的脚本,在他的脚本上做了优化。优化脚本已在做过测试还是挺好用的,如果你觉得不错就直接拿到生产用吧。

先直接放代码出来:

---------------------------------------------------------------------------------------------------------

import re,shutil,os,sys,filecmp


diffFilesList = []

def commpare(dir1,dir2):

    cmpobs=filecmp.dircmp(dir1,dir2)

    dir1_only=cmpobs.left_only

    dir1_diff=cmpobs.diff_files

    [diffFilesList.append(os.path.join(os.path.abspath(dir1),a)) for a in dir1_diff]

    [diffFilesList.append(os.path.join(os.path.abspath(dir1),a)) for a in dir1_only]


    if len(cmpobs.common_dirs) > 0:

        for a in cmpobs.common_dirs:

            commpare(os.path.abspath(os.path.join(dir1,a)),os.path.abspath(os.path.join(dir2,a)))

    return diffFilesList


def main():

    if len(sys.argv) < 3:

        print "Plese use %s sourcedir backdir" % sys.argv[0]

        sys.exit()

    else:

        dir1=os.path.abspath(sys.argv[1])

        dir2=os.path.abspath(sys.argv[2])

    ifMakeDir = True

    while ifMakeDir:

        diffFilesList = []

        destinationFiles = []

        ifMakeDir=False

        sourceFiles=commpare(dir1,dir2)


        for a in sourceFiles:

            destinationFile=re.sub(dir1,dir2,a)

            destinationFiles.append(destinationFile)

            if os.path.isdir(a):

                if not os.path.exists(destinationFile):

                    os.makedirs(destinationFile)

                    print "Make dir %s" % destinationFile

                    ifMakeDir=True


    destinationFiles = []

    sourceFiles=[]

    sourceFiles=commpare(dir1,dir2)


    [ destinationFiles.append(re.sub(dir1,dir2,a)) for a in sourceFiles]

    for a,b in zip(sourceFiles,destinationFiles):

        if os.path.isfile(a):

            print "Copy file %s to %s" % (a,b)

            shutil.copyfile(a,b)


    #print sourceFiles,destinationFiles


if __name__ == '__main__':

    main()

---------------------------------------------------------------------------------------------------------

直接看效果:

[root@localhost tmp]# pwd

/tmp

[root@localhost tmp]# tree testsyncfile/

testsyncfile/

├── destinationfiles

└── sourcefiles

    ├── file

    └── test1

        ├── file1

        └── test2

            ├── file2

            └── test3

5 directories, 3 files


[root@localhost tmp]# python syncfile.py /tmp/testsyncfile/sourcefiles testsyncfile/destinationfiles/

Make dir /tmp/testsyncfile/destinationfiles/test1

Make dir /tmp/testsyncfile/destinationfiles/test1/test2

Make dir /tmp/testsyncfile/destinationfiles/test1/test2/test3

Copy file /tmp/testsyncfile/sourcefiles/file to /tmp/testsyncfile/destinationfiles/file

Copy file /tmp/testsyncfile/sourcefiles/file to /tmp/testsyncfile/destinationfiles/file

Copy file /tmp/testsyncfile/sourcefiles/test1/file1 to /tmp/testsyncfile/destinationfiles/test1/file1

Copy file /tmp/testsyncfile/sourcefiles/file to /tmp/testsyncfile/destinationfiles/file

Copy file /tmp/testsyncfile/sourcefiles/test1/file1 to /tmp/testsyncfile/destinationfiles/test1/file1

Copy file /tmp/testsyncfile/sourcefiles/test1/test2/file2 to /tmp/testsyncfile/destinationfiles/test1/test2/file2

Copy file /tmp/testsyncfile/sourcefiles/file to /tmp/testsyncfile/destinationfiles/file

Copy file /tmp/testsyncfile/sourcefiles/test1/file1 to /tmp/testsyncfile/destinationfiles/test1/file1

Copy file /tmp/testsyncfile/sourcefiles/test1/test2/file2 to /tmp/testsyncfile/destinationfiles/test1/test2/file2

Copy file /tmp/testsyncfile/sourcefiles/file to /tmp/testsyncfile/destinationfiles/file

Copy file /tmp/testsyncfile/sourcefiles/test1/file1 to /tmp/testsyncfile/destinationfiles/test1/file1

Copy file /tmp/testsyncfile/sourcefiles/test1/test2/file2 to /tmp/testsyncfile/destinationfiles/test1/test2/file2

[root@localhost tmp]# tree testsyncfile/

testsyncfile/

├── destinationfiles

│   ├── file

│   └── test1

│       ├── file1

│       └── test2

│           ├── file2

│           └── test3

└── sourcefiles

    ├── file

    └── test1

        ├── file1

        └── test2

            ├── file2

            └── test3


8 directories, 6 files

----------------------------------------------------------------------------------------------------------

简单说明下脚本:

    简单说明下脚本,脚本对源数据与目的数据做对比,有差异的文件做替换和新增,对目录做新增。但对于目的数据多余的目录和文件,脚本不错处理。希望使用脚本的人能根据自己的场景灵活运用。

    刚开始写博客,写的比较草率,后续将分享更加生动的文章!

    对于这篇文章大家有疑问或者建议欢迎留言。


个人博客已转:https://www.jianshu.com/u/a51d22784690

--结束END--

本文标题: Python同步文件

本文链接: https://www.lsjlt.com/news/191385.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python同步文件
    最近在做Python开发,研究了技术大牛写的脚本,在他的脚本上做了优化。优化脚本已在做过测试还是挺好用的,如果你觉得不错就直接拿到生产用吧。先直接放代码出来:-----------------------------------------...
    99+
    2023-01-31
    文件 Python
  • PHP Spring 文件同步:如何做到实时同步?
    文件同步是一项非常重要的任务,特别是在开发过程中,你需要不断地同步代码和文件以保证整个项目的正常运行。而实时同步则更为重要,它可以让你在修改文件之后立即看到效果,从而加快开发效率。本文将介绍如何使用 PHP Spring 实现实时文件同步...
    99+
    2023-08-06
    spring 文件 同步
  • 如何在Python和Bash之间同步日志文件?
    在日常的开发和运维中,我们经常需要在不同的系统和工具之间同步日志文件,以便更好地分析和监控应用程序的运行情况。Python和Bash都是常用的工具,在本文中,我们将介绍如何使用Python和Bash之间同步日志文件。 一、Python和Ba...
    99+
    2023-07-27
    bash 同步 日志
  • 使用WindowsPhone7同步媒体文件
    在Windows Phone 7上同步媒体文件,可以通过以下步骤进行操作:1. 连接手机:使用USB数据线将Windows Phon...
    99+
    2023-09-14
    Windows
  • Rsync如何实现文件同步
    这篇文章主要介绍“Rsync如何实现文件同步”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Rsync如何实现文件同步”文章能帮助大家解决问题。rsync的目的是实现本地主机和远程主机上的文件同步(包...
    99+
    2023-06-27
  • cwRsync 4.0.5 文件同步配置步骤分享
    测试成功,整理一份文档给你 同步工具:cwRsync ① 服务端:cwRsyncServer_4.0.5_Installer(安装过程会添加windows账户SvcCWRSYNC);...
    99+
    2022-11-15
    cwRsync 文件同步
  • Node.js 文件读写:同步与异步的艺术
    同步文件操作 同步文件操作通过 fs.readFileSync() 和 fs.writeFileSync() 方法实现。这些方法会阻塞主线程,直到操作完成,这意味着在读取或写入文件时,其他代码段将无法执行。 同步文件操作的特点: 简单易...
    99+
    2024-04-02
  • Linux文件同步rsync是怎样的
    这篇文章将为大家详细讲解有关Linux文件同步rsync是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync”算法,...
    99+
    2023-06-28
  • 如何用PHP同步日志文件?
    日志文件是应用程序开发和维护中非常重要的一部分,它可以帮助我们记录应用程序的运行状态、错误日志和调试信息。然而,随着应用程序的不断发展和数据量的增长,日志文件的大小也会越来越大,这给日志文件的同步和备份带来了很多挑战。本文将介绍如何使用P...
    99+
    2023-07-09
    日志 文件 同步
  • Ubuntu中怎么利用FreeFileSync同步文件
    这期内容当中小编将会给大家带来有关Ubuntu中怎么利用FreeFileSync同步文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。FreeFileSync是一个跨平台的免费应用程序,允许用户创建数据备...
    99+
    2023-06-15
  • Linux系统怎么实现文件同步
    Linux系统怎么实现文件同步,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Linux系统实现文件同步的方法一、准备源文件地址:192.168.0.143目标文...
    99+
    2023-06-28
  • 文件同步必须借助 PHP Spring 吗?
    在软件开发中,文件同步是一项非常重要的任务。无论是开发团队间的协作,还是代码的备份和版本控制,文件同步都是必不可少的。而在实现文件同步功能时,开发人员通常会选择一种框架或工具来辅助完成,其中 PHP Spring 是一个非常流行的选择。但...
    99+
    2023-08-06
    spring 文件 同步
  • PHP如何实现同步文件索引?
    在现代的计算机应用中,文件管理是一个非常重要的任务。而在文件管理中,索引是一种非常重要的机制,它可以帮助我们快速地找到所需要的文件。在本文中,我们将会介绍如何使用PHP实现同步文件索引的功能。 索引的基本概念 在计算机中,索引就是一种...
    99+
    2023-07-09
    同步 文件 索引
  • 如何实现rsync同步隐藏文件和排除文件
    本篇内容主要讲解“如何实现rsync同步隐藏文件和排除文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现rsync同步隐藏文件和排除文件”吧!rsync同步命令的基本写法rsync&nb...
    99+
    2023-06-10
  • Python同步与异步有什么不同
    本文小编为大家详细介绍“Python同步与异步有什么不同”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python同步与异步有什么不同”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。“同步”和“异步”是什么意思?...
    99+
    2023-06-27
  • 如何在Python中实现文件与实时接口的同步?
    在现代的软件开发中,文件和实时接口都是非常重要的组成部分。文件用于存储数据和信息,而实时接口则用于实时传递和接收信息。在一些特殊的场景下,需要将文件和实时接口进行同步。这时候,Python就成为了一个非常好的选择。Python作为一种高级...
    99+
    2023-08-20
    文件 实时 接口
  • D3.js中强制异步文件如何读取同步
    这篇文章主要为大家展示了“D3.js中强制异步文件如何读取同步”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“D3.js中强制异步文件如何读取同步”这篇文章吧。发...
    99+
    2024-04-02
  • Node.js 文件读写:同步与异步的进阶攻略
    同步文件操作在执行期间阻塞事件循环,等待文件操作完成。 优点: 操作结果立即可用 代码执行顺序清晰 缺点: 性能瓶颈:大型文件或网络 I/O 操作时,会阻塞主线程 不适合处理并发操作 异步文件操作 异步文件操作通过回调函数或 ...
    99+
    2024-04-02
  • 如何实现JavaScript文件的同步和异步加载
    这篇文章主要介绍了如何实现JavaScript文件的同步和异步加载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。同步加载可在html文件里以...
    99+
    2024-04-02
  • Node文件系统fs异步与同步实例分析
    这篇文章主要介绍了Node文件系统fs异步与同步实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node文件系统fs异步与同步实例分析文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作