小编liz*_*ala的帖子

python多处理读取文件花费太多时间

我的代码中有一个函数应该读取文件。每个文件大约 8M,但是读取速度太低,为了改进我使用多处理。可悲的是,它似乎被阻止了。我想知道有没有有什么方法可以帮助解决这个问题并提高阅读速度?

我的代码如下:

import multiprocessing as mp
import json
import os

def gainOneFile(filename):

    file_from = open(filename)
    json_str = file_from.read()
    temp = json.loads(json_str)
    print "load:",filename," len ",len(temp)
    file_from.close()
    return temp

def gainSortedArr(path):
    arr = []
    pool = mp.Pool(4)
    for i in xrange(1,40):
        abs_from_filename = os.path.join(path, "outputDict"+str(i))
        result = pool.apply_async(gainOneFile,(abs_from_filename,)) 
        arr.append(result.get())

    pool.close()
    pool.join()                                               
    arr = sorted(arr,key = lambda dic:len(dic))

    return arr
Run Code Online (Sandbox Code Playgroud)

和调用函数:

whole_arr = gainSortedArr("sortKeyOut/")  
Run Code Online (Sandbox Code Playgroud)

python file-read

4
推荐指数
1
解决办法
951
查看次数

标签 统计

file-read ×1

python ×1