Как я могу отправить вход в другую программу, используя python, используя подпроцесс [дубликата]

1

Я хочу отправить некоторые входные данные в программу на основе cmd с использованием Python. Программа обычно принимает ввод с клавиатуры.

Я пробовал как:

P1=subprocess.Popen("my_program",stdin=subprocess.PIPE,stdout=subprocess.PIPE,sterr=subprocess.PIPE)
p1out,p1err=P1.communicate(input="my_input")

Но выдал ошибку, поскольку "для этого требуется объект, подобный байту, а не str". Я также пытался с P1.stdin.write() метода P1.stdin.write() и снова выдавал ту же ошибку. Каким должен быть мой ввод dtype?

  • 0
    вам может понадобиться передать arg encoding='utf-8' при вызове Popen
Теги:
subprocess

2 ответа

2

Кажется, что все, что вам нужно изменить, - это строка типа "байты".

type("my_input")
>>>> str
type(b'my_input')
>>>> bytes
0

Я решил использовать

my_input=my_input.encode("utf-8")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню