我有许多大文件,有数千行 python dict 格式。我正在使用 json.dumps 将它们转换为 json 字符串。
import json
import ast
mydict = open('input', 'r')
output = open('output.json', "a")
for line in mydict:
line = ast.literal_eval(line)
line = json.dumps(line)
output.write(line)
output.write("\n")
这完美地工作,但是,它以单线程方式进行。有没有一种简单的方法可以利用系统中的剩余内核来加快速度?
编辑:
根据我在这里开始使用多处理库的建议:
import os
import json
import ast
from multiprocessing import Process, Pool
mydict = open('twosec.in', 'r')
def info(title):
print title
print 'module name:', __name__
print 'parent process: ', os.getppid()
print 'process id:', os.getpid()
def converter(name):
info('converter function')
output = open('twosec.out', "a")
for line in mydict:
line = ast.literal_eval(line)
line = json.dumps(line)
output.write(line)
output.write("\n")
if __name__ == '__main__':
info('main line')
p = Process(target=converter, args=(mydict))
p.start()
p.join()
我不太明白Pool在哪里发挥作用,你能解释一下吗?