2

Моя проблема в том, что у меня есть функция, называющая ее function1, которая работает бесконечно Сама функция эхо "привет" каждую 1 секунду. Используя команду:

function1 >> temp.txt

Каждую 1 секунду, если я просматриваю файл temp.txt, я должен видеть новую строку с "привет". Однако происходит то, что функция не записывает в файл, пока не завершит работу. Поэтому, если я хочу убить функцию, ничего не будет написано. Кто-нибудь знает, что я могу сделать в этой ситуации, что в основном динамически обновляет temp.txt?

У меня есть скрипт Python, настроенный следующим образом:

while [1>0]: print "hello" time.sleep(1)

Поэтому это всегда будет работать. Теперь я называю это в скрипте bash

python pythonscript.py >> temp.txt

Если я kill процесс, никакие данные не будут зарегистрированы.

1 ответ1

2

Теперь, когда вы упомянули, что это не функция оболочки, а функция Python в скрипте Python: это объясняет некоторые из них, и вот вам ответ:

печать - Как очистить вывод печати Python? - Переполнение стека

Вы должны поместить это в цикл вашей функции python: sys.stdout.flush() - и, конечно, вам нужно import sys до (или from sys import ... если вам нужна только его часть).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .