Python: процесс не выполняет свой код - PullRequest
0 голосов
/ 05 мая 2020

Я запускаю программу для поиска элементов в огромном XML. Чтобы сократить время выполнения (16 минут в последовательном режиме), я решил научиться использовать multiprocessing.

Каждый процесс должен читать строки из определенного файла и проверять ps_ root на совпадения

Пока что у меня есть это:

import xml.etree.ElementTree as ET
from multiprocessing import Process
import multiprocessing

def process_worker(fileName):

    ps_tree = ET.parse("Conf0381_28-02.xml")
    ps_root = tree.getroot()

    print("In process . .")
    with open(fileName,"r") as f:
        for num, line in enumerate(f, 1):
            if (found element within ps_root)
                text_file = open(resultFile,"a").write(elementInfo)
        f.close()

if __name__ == '__main__':

#A bunch of code to build the 'fileTHR_X.txt'


p0 = Process(target=process_worker, args=("fileTHR_0.txt",))
p0.start()
p1 = Process(target=process_worker, args=("fileTHR_1.txt",))
p1.start()
p2 = Process(target=process_worker, args=("fileTHR_2.txt",))
p2.start()
p3 = Process(target=process_worker, args=("fileTHR_3.txt",))
p3.start()

p0.join()
p1.join()
p2.join()
p3.join()

Но когда основная программа завершается, resultFile все еще пуст. Я изучал это в течение двух дней, но поскольку я новичок в multiprocessing, я не совсем знаю, как исследовать. Я пробовал добавить в процесс несколько print, но они даже не появляются. Я работаю с Python 2.7.18 IDLE (F5 в моем program.py)

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...