通过发送int数据与子进程通信

时间:2016-02-03 08:10:21

标签: python subprocess

我正在使用subprocess.Popen来启动一个新程序,该程序需要来自stdin的int数据。

proc = Popen('command', shell=False,stdout=PIPE, stdin=PIPE, stderr=STDOUT)
proc.communicate(1)

错误

TypeError: 'int' object is unsubscriptable

我可以通过其他方式启动新程序并传递int数据吗?

2 个答案:

答案 0 :(得分:0)

正如here所述:

  

可选的输入参数应该是要发送给子级的字符串   过程

因此您必须发送'1'然后在程序中将其转换

答案 1 :(得分:0)

city.select2()的参数必须是Popen.communicate()bytes对象。这应该适用于Python 2.x和3.x:

str

或使用变量:

proc.communicate(b'1')

为了完整起见,要发送一个实际的整数而不是它的ASCIIfication,你可以这样做:

proc.communicate(str(myint).encode())