我正在尝试提供一个从文件读取的脚本,处理字符串并使用多处理将其写入另一个文件。
这就是我现在想出的:
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"我需要更改以使流程获取。排队并处理它(如果线路顺序改变,我不在乎......)