我的目标是遍历一个目录并计算其中所有文件的MD5。我用代码来解决类似的问题import os

import re

import sys

import time

import md5

from stat import S_ISREG

import multiprocessing

global queue

size_limit = 500000

target = sys.argv[1]

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

############Analysis and Multiprocessing####################

def walk_files(topdir):

"""yield up full pathname for each file in tree under topdir"""

for dirpath, dirnames, filenames in os.walk(topdir):

for fname in filenames:

pathname = os.path.join(dirpath, fname)

yield pathname

def files_to_search(topdir):

"""yield up full pathname for only files we want to search"""

for fname in walk_files(topdir):

try:

# if it is a regular file and big enough, we want to search it

sr = os.stat(fname)

if S_ISREG(sr.st_mode) and sr.st_size <= size_limit:

yield fname

except OSError:

pass

def worker_search_fn(fname):

fp = open(fname, 'rt')

# read one line at a time from file

contents = fp.read()

hash = md5.md5(contents)

global queue

print "enqueue"

queue.put(fname+'-'+hash.hexdigest())

################MAIN MAIN MAIN#######################

################MAIN MAIN MAIN#######################

################MAIN MAIN MAIN#######################

################MAIN MAIN MAIN#######################

################MAIN MAIN MAIN#######################

#kick of processes to md5 the files and wait till completeion

queue = multiprocessing.Queue()

pool = multiprocessing.Pool()

pool.map(worker_search_fn, files_to_search(target))

pool.close()

pool.join()

#Should be done, now lets send do our analysis

while not queue.empty():

print queue.get()

我添加了“print enqueue”语句作为调试目的,我注意到代码确实在递归一个大目录树时锁定了。我不确定两个进程是否试图同时访问队列,从而导致死锁。在

也许有更好的方法来做这件事?该结构不必是队列,但必须是无锁的,以便充分利用多处理。我想要一个递归和md5并行的目录,一旦完成,就把列表作为一个整体来做一些事情。为了调试,我只打印完成的队列。有什么建议吗?在

python编程解决排队问题_并行排队多处理池,python相关推荐

  1. python编程资料包_强力推荐,非常全的Python编程400集学习资料(今日限免)

    因为大数据和 AI,Python 一跃成为最火的语言,这里推荐几本畅销排行榜上的好书. 有需要在我的哔哩哔哩账号,私信我,"资料,即可免费领取. 一.Python基础教程 <图灵程序设 ...

  2. python 编程刷题_一起刷题吧 | 100+Python编程题带你快速上手(附答案)

    来源:Python大本营 本文约1000字,建议阅读5分钟. 100+编程练习帮大家轻松学习Python,春节也要抓紧学习哟~ 春节马上就要到了,怎么能让自己在假期里不掉队?今天,给大家准备一个项目: ...

  3. python编程100行_自己动手写100行Python代码抢火车票!

    今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool. 先准备好: 1)12306网站用户名和密码 2)chrome浏览器及下载chromedriver 3)下载Python代码 代码用的Pyt ...

  4. 小学生python编程写游戏_小学生开始学Python,开发AI的首选编程语言:推荐一波Python书单...

    AlphaGo 都在使用的 Python 语言,是最接近 AI 的编程语言. 教育部考试中心近日发布了"关于全国计算机等级(NCRE)体系调整"的通知,决定自2018年3月起,在全 ...

  5. python编程快速上手_给Python小白推荐的40本入门书籍,帮你快速上手

    喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远!有不懂的问题可以私聊我哦! 最近,小编的 Python 交流裙里进来了几位比较特殊的同学:一位初三的以编程为兴 ...

  6. Python编程新手看过来,如何求素数 (Python学习教程)

    本期的Python学习教程是针对新入门Python编程的新手来写的:关于怎么求素数! 一.什么是素数? 素数就是质数,通俗点说就是只能被1和其本身整数的数就是素数(1除外) 举个例子: 2,3,4,5 ...

  7. python数学编程_用Python编程解决数学问题

    编程中的逻辑算法和数学是一样的,掌握了编程技术,数学中的很多问题都能轻松解决了.比如Python是人工智能时代的热门语言,很多孩子从小就开始学习Python,今天南京小码王Python培训班老师就教教 ...

  8. python线上课堂_线上线下相结合的Python编程教学

    线上线下相结合的 Python编程教学 朱军强 广东省韶关市乳源瑶族自治县桂头中学 ,广东 韶关 512736 摘要:Python编程教学是初中信息课堂教学的重要组成模块,高质量的Python编程教学 ...

  9. python编程大数据分析_大数据分析Python学习技巧

    大数据分析Python是任何开发人员都应该知道的重要编程语言.许多程序员使用这种语言来构建网站,创建学习算法以及执行其他重要任务.但是尝试学习大数据分析Python可能会令人感到恐惧,沮丧和困难,尤其 ...

最新文章

  1. 全球及中国病人多参数监护仪行业动态研究与运营风险评估报告2022版
  2. 传感器信号 如何发送到服务器,传感器如何将消息发送给云服务器
  3. redis session java获取attribute_redis里的数据结构
  4. mac 修改conda镜像 condarc_win10 修改anaconda源
  5. 计算机怎样旋转桌面,win7电脑怎么设置翻转屏幕
  6. Linux系统(简介、文件管理、常用命令、账号管理、c开发工具)
  7. 需要凭据_PE管件连接时有哪些需要注意的地方
  8. Python for Informatics 第11章 正则表达式五(译)
  9. 何宾 单片机原理及应用_单片机原理及应用知识点整理
  10. 前端学习日志之复刻百度新闻女人专栏
  11. redis 通道 java_【java】netty4,服务端向客户端主动发消息怎么把channel存储到redis缓存中?...
  12. 内网穿透工具-venom
  13. python numpy.arry, pytorch.Tensor及原生list相互转换
  14. VirusTotal
  15. c语言void delayms,C语言题、谁帮我看看啊!!!!
  16. python外星人入侵飞船上下移动_Python实现《外星人入侵》之移动外星人
  17. 有控制雷电武器的java游戏_雷电飞机射击游戏 JAVA
  18. 使用技巧-Z平台为第三方系统开放接口过程
  19. netty报错:io.netty.channel.ChannelPipelineException
  20. Unity实用小工具或脚本——3D物体带坐标轴的拖拽

热门文章

  1. R语言distVincentyEllipsoid函数计算大圆距离实战(Great Circle Distance)
  2. plotly可视化绘制多坐标轴图
  3. R可视化绘制指数分布(Exponential Distribution)
  4. permutation_importance是什么?背后的思想又是什么?是如何使用permutation_importance计算特征重要度的?
  5. 昆虫基因组DNA的优化提取,可进行长读测序
  6. three.js 加载显示文字
  7. python debug 调试工具 pysnooper
  8. 【英文文本分类实战】之四——词典提取与词向量提取
  9. 【自然语言处理】N-最短路径法进行中文分词
  10. 数学知识--Methods for Non-Linear Least Squares Problems(第三章)