Ответ 1
Если вы хотите, чтобы ваши значения script возвращали, просто сделайте return [1,2,3]
из функции, обертывающей ваш код, но затем вам придется импортировать ваш script из другого script в даже использовать любую информацию для этой информации:
Возвращаемые значения (из оберточной функции)
(опять же, это должно быть запущено отдельным Python script и импортироваться, чтобы даже принести пользу):
import ...
def main():
# calculate stuff
return [1,2,3]
Коды выхода в качестве индикаторов
(Обычно это хорошо, когда вы хотите указать губернатору, что пошло не так, или просто количество ошибок/строк, подсчитанных или w/e. Обычно 0 - хороший выход, a >= 1 - плохой выход, но вы могли бы inter-prate их каким-либо образом вы хотите получить данные из него)
import sys
# calculate and stuff
sys.exit(100)
И выйдите с определенным кодом выхода в зависимости от того, что вы хотите, чтобы сообщить своему губернатору. Я использовал коды выхода при запуске script с помощью среды планирования и мониторинга, чтобы указать, что произошло.
Stdout как ваше реле
Если нет, вам нужно будет использовать stdout для общения с внешним миром (как вы описали). Но это вообще плохая идея, если только парсер не выполняет ваш script и не может поймать то, о чем вы сообщаете.
import sys
# calculate stuff
sys.stdout.write('Bugs: 5|Other: 10\n')
sys.stdout.flush()
sys.exit(0)
Используете ли вы script в контролируемой среде планирования, тогда лучше всего выйти из кода выхода.
Файлы в качестве конвейеров
Также есть возможность просто записать информацию в файл и сохранить там результат.
# calculate
with open('finish.txt', 'wb') as fh:
fh.write(str(5)+'\n')
И возьмите оттуда значение/результат. Вы даже можете сделать это в формате CSV, чтобы другие могли читать упрощенно.