从通讯中分割输出

时间:2019-03-11 16:35:50

标签: python

我正在尝试使用communication从字符串中名为clasp的程序获取输出,但是当我尝试使用split python时告诉我:

AttributeError: 'tuple' object has no attribute 'split'

当我尝试使用.join Python将元组转换为字符串时,

TypeError: sequence item 0: expected str instance, bytes found

所以我不明白使用交流的输出类型,我读了很多文章,但没有用。输出是字节对象?或元组?

def resolve(self):
    p = Popen(['clasp', 'propositions.txt'], stdout=PIPE)#stdin=PIPE, stdout=PIPE, stderr=PIPE 
    output= p.communicate("input data that is passed to subprocess' stdin")

    print (output)

    str = '/n'.join(output)
    print (output.split("c Answer: 1",1)[1])

1 个答案:

答案 0 :(得分:1)

我们从Python 3.7 docs

  

communicate()返回一个元组(stdout_data,stderr_data)。如果以文本模式打开流,则数据将为字符串;否则,数据为字符串。否则为字节。

因此output[0]是stdout中的数据,以便打印即可print(output[0])