Создание файлов в цикле с многопроцессорной обработкой в Python
Я пытаюсь написать сценарий Python, который анализирует большие XML-файлы и преобразует их в CSV-файлы. Я попытался получить цикл, который позволяет создавать столько CSV-файлов, сколько число назначенных процессоров, другими словами, каждый процессор создаст CSV-файл. файл самостоятельно. Вот сценарий:
repartition = defaultdict(list)
for i, in_filename in enumerate(FichList): #reading xml files in the directory
m = i % num_process #num_process is a configuration variable
repartition[m].append(in_filename)
for i in range(1,num_process):
lock_filename = TargetCsvFilenamePath + os.sep + "HNI_mxmltocsv_R50_multiprocess_"+ num_process_display +"_"+ time.strftime('%Y%m%d%H%M%S',time.localtime())+".csv.lock"
fichier = codecs.open(TargetCsvFilenamePath + os.sep + "HNI_mxmltocsv_R50_multiprocess_"+ num_process_display +"_"+ time.strftime('%Y%m%d%H%M%S',time.localtime())+".csv", "w",encoding='utf-8')
fichier.write("ID_FLUX;LIB_FLUX;ID_EMETTEUR;ID_PRM;FILE_NAME;ID_DEST;DATE_CREA_FICH;ID_CONT;ID_ABO;PAS_PUBLI;UNIT_MSR_PDC;Date_Releve;Id_Affaire;Horodate;VAL_MSR_PDC;INDC_VRAIS_PDC\n")
p = multiprocessing.Process(target=SplitFichierR50, args=(repartition[i], fichier, lock_filename,))
p.start()
liste_process.append(p)
fichier.close()
os.unlink(lock_filename)
Я использую Python 2.7 и для выполнения этого скрипта нам нужно импортировать другие библиотеки, такие как: многопоточность, многопроцессорность, кодеки, коллекции, filelock, os, sys и csv. И "SplitfichierR50(in_filename_list,out_file, lock_file):" - это просто функция синтаксического анализа. Я только начинающий в Python, любая помощь будет оценена!!