用于部署的Python脚本:比较两个文件夹以生成要备份和ftp的增量文件

2024-09-28 03:13:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为部署创建一个python脚本,通过比较两个文件夹(devprodmirror)来生成增量文件,然后备份现有文件并复制到prodmirror文件夹,还将增量ftp到服务器。你知道吗

下面是代码。。你知道吗

问题:def difference\u dict(dict\u A,dict\u B)只需标识A-B,但如果文件在B中发生更改(即prodmiror),则返回,此处需要一些帮助/指针。你知道吗

    import os
    import hashlib

    srcdir = 'C:\dev'
    tgtdir = 'C:\prodmirror'

    # definition of function to retrieve MD5 using small chunks of file
    def md5(fname):
        hash_md5 = hashlib.md5()
        with open(fname,'rb') as f:
            for chunk in iter(lambda: f.read(2 ** 20), b""):
                hash_md5.update(chunk)
        return hash_md5.hexdigest()

    # definition of function to find dictionaries difference,i.e present in A not in B
    def difference_dict(Dict_A, Dict_B):
        output_dict = {}
        for key in Dict_A.keys():
            if key not in Dict_B.keys():
                output_dict[key] = Dict_A[key]
        return output_dict

    srcdict={}
    for path, subdirs, files in os.walk(srcdir):
       for filename in files:
        f = os.path.join(path, filename)
        srcdict[md5(f)]= f

    print("SRC Dict :"+str(srcdict))

    tgtdict={}
    for path, subdirs, files in os.walk(tgtdir):
       for filename in files:
        f = os.path.join(path, filename)
        tgtdict[md5(f)]= f
    print("TGT Dict :"+str(tgtdict))


    print("DIFF Dict :"+str(difference_dict(srcdict,tgtdict)))

Tags: 文件pathkeyinforosfilesfilename
1条回答
网友
1楼 · 发布于 2024-09-28 03:13:11

最后,在尝试了一些脚本和网络延迟的同步问题后,我们解决的最好的免费选择是一个免费工具。。winscp,下面是如何编写文档>;https://winscp.net/eng/docs/task_synchronize_full

优点我发现能够同步在安全协议在二进制模式和自动监视设施(我们不使用,但很好) 第一个副本,在本地复制服务器文件夹并启动同步(两种模式可用,自动/手动)

所以无论您做什么更改,该工具都将与服务器副本进行比较,并且只移动更改的文件!你知道吗

从windows到linux。你知道吗

相关问题 更多 >

    热门问题