我有一个 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/