当前第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删除list中的重复元素
Python中运算符怎么使用
Python怎么卸载第三方库
如何移除Python列表项的值Python remove()方法最有效
Python招聘要求高吗
Python初学者必须理解的10个知识点
Python的web服务器相关知识点
Python3文件操作相关的实力分享
Python中psutil库的使用介绍(详细)
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python频繁写入文件怎么提速