从文件读取,处理并使用多处理写入另一个文件

时间:2015-03-18 17:35:03

标签: python multiprocessing

我正在尝试提供一个从文件读取的脚本,处理字符串并使用多处理将其写入另一个文件。

这就是我现在想出的:

from multiprocessing import Pool

input = open('input.txt', 'r')
output = open('output.txt', 'w+')

writer = csv.DictWriter(output, fieldnames=SOME_HEADER)
writer.writeheader()

def write_into_file(line):
    # do some processing to line
    writer.writerow(processed_line)

    #counter for debugging
    global c
    c += 1
    if c % 10000 == 0:
        print c

c = 0
pool = Pool(processes=4)
pool.map(write_into_file, input)

input.close()
output.close()

当这个脚本运行时,我得到所有四个进程来并行读取文件,但它们都在写(我猜是在读)同样的行 - 我得到我的计数器打印调试四次。

每次" next"我需要更改以使流程获取。排队并处理它(如果线路顺序改变,我不在乎......)

0 个答案:

没有答案