взаимодействие с asyncio subprocess
Я использую asyncio.subprocess
У меня есть процесс, с которым программа должна взаимодействовать. Он консольный. Он принимает строку и возвращает ответ. Как я могу с ним работать? Как сделать чтобы он возвращал ответ в переменную, или записывал в файл?
async def com():
p = await create_subprocess_exec('process', stdin=PIPE, stdout=PIPE)
await p.communicate()
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.create_task(com())
loop.run_forever()
Ответы (1 шт):
Автор решения: Егор
→ Ссылка
Решение оказалось примерно таким:
async def com():
p = await create_subprocess_shell('command', stdin=PIPE, stdout=PIPE)
while True:
data = input()
await p.stdin.write(data)
out = await proc.stdout.readline()
if out:
print(out.decode('utf-8'))