Я хотел бы иметь возможность перенаправить стандартный вывод моей программы на объект StringIO (), чтобы я мог имитировать реакцию пользователя на оператор ввода.
newstdin = StringIO()
sys.stdin = newstdin
newstdin.write("hey")
newstdin.seek(0)
response = input()
print(response)
Мой код работает, когда ответ уже однако в объекте StringIO (), если ничего нет, он немедленно вызывает ошибку EOF вместо ожидания ответа, как если бы он был установлен в обычный sys.stdin. Как я могу сделать это так, чтобы оператор input () ждал, когда ответ будет записан в объект StringIO () (это будет сделано в отдельном потоке). Спасибо!