Сохранить потоковую печать уровня C в файл в Python 2.7 - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь сохранить вывод терминала скрипта Python в файл и распечатать вывод в терминал.Используя сценарий регистрации ниже, я смог успешно сохранить вывод Python, но мой сценарий вызывает GNU Radio как класс, и этот вывод не сохраняется правильно.Я считаю, что проблема в том, что GNU Radio скомпилирован код C и не перехватывается в перенаправлении stdout.Я пытался использовать сценарий Эли Бендерского в качестве перенаправления, но я не понимаю, как реализовать это в Python 2.7.В идеале я мог бы добавить это перенаправление уровня C в класс Logger и сохранить выходные данные GNU Radio в том же сгенерированном файле журнала.Спасибо за помощь!

import sys

class Logger(object):
    def __init__(self, filename="Default.log"):
        self.terminal = sys.stdout
        self.log = open(filename, "a")

    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)

sys.stdout = Logger("yourlogfilename.txt")
print "Hello world !" # this is should be saved in yourlogfilename.txt
...