Я пытаюсь записать определенные файлы после редактирования, используя код многопроцессорности python (2.7). Он работает как очарование для небольшого числа (< 20). но когда я пытаюсь использовать больше файлов (20+), это становится неистовым. Я использую Python 2.7.5 на CentOS 6.5 с 4-х ядерным процессором.Запись ошибок в многопроцессорной обработке Python
import sys, os
import multiprocessing
import glob
list_files = glob.glob("Protein/*.txt")
def Some_func(some_file):
with open(some_file) as some:
with open(file_output) as output:
for lines in Some:
#Do Something
#edited_lines = func(lines)
output.write(edited_lines)
pool = multiprocessing.Pool(10) # Desired number of threads = 10
pool.map(Some_func, list_files,)
pool.close()
pool.join()
Окончательные письменными файлов накладываются друг на друга.
File 1
Lines 1 .. File 1
Lines 2 .. File 1
Lines 3 .. File 1
Lines 4 .. File 1
Lines 5 .. File 1
Lines 6 .. File 1
Lines 7 .. File 1
Lines 8 .. File 1
Lines 9 .. File 1
File 2
Lines 1 .. File 2
Lines 2 .. File 2
Lines 3 .. File 2
Lines 4 .. File 2
Lines 5 .. File 2
Lines 6 .. File 2
Lines 7 .. File 2
Lines 8 .. File 2
Lines 9 .. File 2
Output:
Lines 1 .. File 1
Lines 2 .. File 1
Lines 3 .. File 1 Lines 1 .. File 2
Lines 4 .. File 1
Lines 5 .. File 1Lines 2 .. File 2
Lines 3 .. File 2
Lines 4 .. File 2
Lines 6 .. File 1