У меня есть скрипт Python, который я пытаюсь запустить в NiFi с использованием процессора ExecuteStreamCommand
. Когда файл сталкивается с проблемой в блоке try
, я хочу вернуть исходный файл потока в блоке except
. Обычно я просто делаю sys.stdout.write(flow_file)
в блоке исключений, но проблема возникает, когда я пытаюсь прочитать это в систему, потому что кодировка utf-8 испорчена.
Как вернуть файл потока без вызова sys.stdout.write(flow_file)
? Я также попытался просто сделать pass
, но он также не может вернуть файл потока как что-либо кроме файла 0 байтов. Он получит путь к выходному потоку, но это все еще просто 0-байтовый файл, который мне не нужен.
Текущий сценарий
#!/usr/bin/python3
import sys
try:
flow_file = sys.stdin.read()
sys.stdout.write(str(flow_file))
except:
# sys.stdout.write(flow_file) # returned 0 byte
pass # returned 0 byte