当前第2页 返回上一页
generate_flow_field(image_list)
需要传入一个list,然后对于这个list进行操作,之后对操作的结果进行保存
所以,只需要将你需要处理的多个文件,切分成尽量等大小的list,然后再对每一个list,开一个线程进行处理即可
上面的主函数:
1 2 3 4 5 6 7 8 9 10 | if __name__ == '__main__' :
file_list = glob(file_path + '/*.JPEG' ) # 将文件夹下所有的JPEG文件列成一个list
m = 32 # 假设CPU有32个核心
n = int(math.ceil(len(file_list) / float(m))) # 每一个核心需要处理的list的数目
result = []
pool = multiprocessing.Pool(processes=m) # 开32线程的线程池
for i in range(0, len(file_list), n):
result.append(pool.apply_async(generate_flow_field, (file_list[i: i+n],))) # 对每一个list都用上面我们定义的函数进行处理
pool.close() # 处理结束之后,关闭线程池
pool.join()
|
主要是这样的两行代码,一行是
1 | pool = multiprocessing.Pool(processes=m) # 开32线程的线程池
|
用来开辟线程池
另外一行是
1 | result.append(pool.apply_async(generate_flow_field, (file_list[i: i+n],))) # 对每一个list都用上面我们定义的函数进行处理
|
对于线程池,用apply_async()同时跑generate_flow_field这个函数,传入的参数是:file_list[i: i+n]
实际上apply_async()这个函数的作用是所有的线程同时跑,速度是比较快的。
更多Python相关技术文章,请访问Python教程栏目进行学习!
以上就是python频繁写入文件怎么提速的详细内容,更多文章请关注木庄网络博客!!
返回前面的内容
相关阅读 >>
Python编程从入门到实践这本书怎么样
浅谈Python中爬虫框架(talonspider)的介绍
Python中的单引号双引号有什么区别
Python中map()函数的方法示例
Python脚本如何模拟接口实现批量用户开通(代码)
Python操作mongodb的9个步骤
Python里break怎么用
Python中如何导入math库
Python的线程join怎么用
怎么把pycharm卸载干净
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python频繁写入文件怎么提速