Я хочу отправить некоторые входные данные в программу на основе 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?
Кажется, что все, что вам нужно изменить, - это строка типа "байты".
type("my_input")
>>>> str
type(b'my_input')
>>>> bytes
Я решил использовать
my_input=my_input.encode("utf-8")
encoding='utf-8'
при вызовеPopen