Создание файлов в цикле с многопроцессорной обработкой в ​​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, любая помощь будет оценена!!

0 ответов

Другие вопросы по тегам