python频繁写入文件怎么提速


当前第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》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...