我正在尝试使用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])
答案 0 :(得分:1)
我们从Python 3.7 docs起
communicate()返回一个元组(stdout_data,stderr_data)。如果以文本模式打开流,则数据将为字符串;否则,数据为字符串。否则为字节。
因此output[0]
是stdout中的数据,以便打印即可print(output[0])