StdOut из Python MultiProcess не перенаправляет - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть программа на python, которая записывает вывод в консоль с помощью print ().Вывод на консоль кажется правильным, но когда я пытаюсь перенаправить вывод на консоль в файл, файл становится пустым.

Я пытался использовать оба tee,>, >>, 2> & 1 Файл перенаправления всегда пуст

class MultiFolderProcess:
    queue = None

    def __init__(self, nb_workers):
        self.queue = mp.JoinableQueue()
        self.processes = [mp.Process(target=self.doprocessing) for i in range(nb_workers)]
        for p in self.processes:
            p.start()

    def addToQueue(self, item):
        self.queue.put(item)

    def doprocessing(self):
        while True:
            item = self.queue.get()
            if item is None:
                break
            self.walkFolders(item["id"])
            self.queue.task_done()

    # Recursively navigate through the folder structure
    def walkFolders(self, id):
        # code removed...
        print("Data from process")

    def terminate(self):
        self.queue.join()
        for p in self.processes:
            p.terminate()

def main():
    r = MultiFolderProcess(7)
    r.addToQueue({"id": 1655})
    r.terminate()

main()
...