Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有md5总和验证python的copytool_Python_Copy_Md5_Checksum_Verification - Fatal编程技术网

带有md5总和验证python的copytool

带有md5总和验证python的copytool,python,copy,md5,checksum,verification,Python,Copy,Md5,Checksum,Verification,我写了一个程序,它复制了一个包含大量文件的整个目录树。这种情况会发生 同时到达两个目的地。它将生成中每个文件的MD5和 源树,将其转储到一个txt文件,并在目标端执行相同的操作并进行比较 如果这三个总和相等,那么我就可以确保每个文件都被复制和删除了 校验和已验证 问题是我首先递归地复制整个源代码树,然后再复制 读取整个源文件以生成源校验和。我想会更快 复制一个文件,并在逐个文件复制后立即生成源md5和,这样就不需要再次读取源文件 因此,我的问题是,如何以高效、快速的方式实现这一点?单拷贝任务 可

我写了一个程序,它复制了一个包含大量文件的整个目录树。这种情况会发生 同时到达两个目的地。它将生成中每个文件的MD5和 源树,将其转储到一个txt文件,并在目标端执行相同的操作并进行比较 如果这三个总和相等,那么我就可以确保每个文件都被复制和删除了 校验和已验证

问题是我首先递归地复制整个源代码树,然后再复制 读取整个源文件以生成源校验和。我想会更快 复制一个文件,并在逐个文件复制后立即生成源md5和,这样就不需要再次读取源文件

因此,我的问题是,如何以高效、快速的方式实现这一点?单拷贝任务
可能是500GB的数据和大约40000个文件。

与其从头开始编写,不如查看python的第三方rsync端口@


Rsync已经很好地解决了这个问题。

您可以在写入复制目标时读取文件并对其进行散列。然而,我怀疑这比仅仅使用
shutil
复制文件,然后将它们从复制过程中分离出来要慢得多。如果它像一次读取一次写入多个并行过程那样进行,那就太好了。我认为,如果文件是在RAM中,因为它是复制的,我可以在复制任务之后立即生成源md5和,而无需再次读取。问题是这是否比复制孔树然后再次读取源更快。我想问题是我需要先生成洞目录树,然后将文件复制到正确的文件夹中。。。