Сценарий автозапуска 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")