#python #subprocess
#python #подпроцесс
Вопрос:
У меня есть подпроцесс внутри моего кода на python, и я хочу общаться с ним по требованию. подпроцесс не завершится при вызове и останется открытым. итак, я хочу вызвать функцию и прочитать стандартные строки из подпроцесса до этого момента, другими словами, я не хочу, чтобы программа ждала новых входных данных. это мой код:
print("Starting Stockfish Engine...")
engine = subprocess.Popen(
'stockfish',
universal_newlines=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
bufsize=1,
)
def send_command(command):
print('nyou:nt' command)
engine.stdin.write(command 'n')
def get_result():
line = engine.stdout.readline()
while engine.stdout.readable():
print(line)
line = engine.stdout.readline()
get_result()
send_command("uci")
get_result()
любая помощь будет оценена. Спасибо
Комментарии:
1. Рассматривали ли вы возможность отправки EOF или эквивалента CTRL-C на стандартный ввод подпроцесса? Я не уверен, что это сработает, но я думаю, что стоит попробовать. Вы не указали, что изучали что-либо, так что я понятия не имею, пробовали ли вы это уже или нет.
2. Я не хочу закрывать подпроцесс и перезапускать его каждый раз. я хочу, чтобы он был открыт и считывался из выходных данных всякий раз, когда мне это нужно. отправка SIGINT закроет подпроцесс.