python - Python 中的多线程 MD5 校验和

标签 python multithreading md5 checksum

我有一个 python 脚本,它递归地遍历指定目录,并对它找到的每个文件进行校验和。然后它会写入一个日志文件,其中列出所有文件路径及其 md5 校验和。

因此,对于 50,000 个每个 15 MB 的文件,这需要很长时间。但是,我的计算机的可用资源比实际使用的要多得多。我该如何调整我的方法,以便脚本使用更多资源来更快地执行?

例如,我可以将我的文件列表分成三部分并为每个文件运行一个线程,从而获得 3 倍的运行时间吗?

我对线程不是很满意,我希望有人不介意为我的案例举个例子。

这是我的顺序 md5 循环的代码:

for (root, dirs, files) in os.walk(root_path):
    for filename in files:
        file_path = root + "/" + filename
        md5_pairs.append([file_path, md5file(file_path, 128)])

提前感谢您的帮助!

最佳答案

对于这种工作,我认为 multiprocessing.Pool 会给你的惊喜较少 - 在 http://docs.python.org/library/multiprocessing.html 查看示例和文档

关于python - Python 中的多线程 MD5 校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10130867/

相关文章:

python - 如何查找 bs4 的所有字符串?

c++ - 如何确定我们是否在主线程中运行?

java - 记录 Spring 通过 @Async 注释创建的线程抛出的 RuntimeException

ios - iTMSTransporter metadata.xml md5 实用程序 ios

ios - 快速计算大文件的 MD5 校验和

python - 对新出现的情况进行分类 - 多项式朴素贝叶斯

python - 在神经网络中 : accuracy improvement after each epoch is GREATER than accuracy improvement after each batch. 为什么?

Java Parallel Streams 关闭线程

c# - Java 与 C# 中的 UTF-16 编码

python - 从以前的字段向 NamedTuple 添加字段