如何使用子进程使用python将输入发送到另一个程序

时间:2019-04-17 07:33:12

标签: python subprocess

我想使用python将一些输入发送到基于cmd的程序。该程序通常从键盘输入类型。

我尝试过:

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()方法,并再次给出了相同的错误。我的输入dtype应该是什么?

2 个答案:

答案 0 :(得分:2)

似乎您所要做的就是将字符串更改为“字节”类型。

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

答案 1 :(得分:0)

我使用

解决了
my_input=my_input.encode("utf-8")