Сценарий автозапуска Python сохраняет вывод в текстовый файл Raspberry Pi

У меня проблема с моим raspberry pi, который запускает скрипт на python. Как сохранить напечатанный вывод в файл, когда он запускается при загрузке? Я нашел скрипт ниже в интернете, но он не пишет печатный текст, он создает файл, но содержимое пустое.

sudo python /home/pi/python.py > /home/pi/output.log

0 ответов

Он записывает свой вывод в файл, но вы не можете его увидеть, пока файл python не завершит выполнение, поскольку буфер никогда не сбрасывается.

Если вы измените вывод в файл в своем скрипте python, вы можете вызвать flush периодичности в своем коде, чтобы передать вывод в файл, когда и когда захотите, что-то вроде этого.

    import sys
    import time
    outputFile = "output.txt";
    with open(outputFile, "w+") as sys.stdout:
        while True:
            print("some output")
            sys.stdout.flush() # force buffer content out to file
            time.sleep(5) # wait 5 seconds

если вы хотите вернуть вывод на терминал, вы можете сохранить ссылку на исходный стандартный вывод, как это

    import time
    outputFile = "output.txt";
    original_stdout = sys.stdout
    with open(outputFile, "w+") as sys.stdout:
        print("some output in file")
        sys.stdout.flush()
        time.sleep(5)
    sys.stdout = original_stdout
    print("back in terminal")
Другие вопросы по тегам