无法打印正确解码的readAllStandardOutput

时间:2019-07-15 07:37:30

标签: python pyqt pyqt5 qbytearray

我有以下代码可将流程的所有输出打印到文本字段中:

data = self.m_process.readAllStandardOutput()
s = str(data)
self.m_ui.b_renderOutput.append(s)

我在输出中得到的是:

b''
b''
b''
b'\r\nStarting "C:\\Program Files'
b''
b'\\Autodesk\\Maya2018\\bin\\mayabatch.exe"\r\n'
b'Initialized VP2.0 renderer {\r\r\n'

我无法对其进行解码并以正确的方式进行打印。我知道来自readAllStandardOutput的是一个QByteArray

1 个答案:

答案 0 :(得分:2)

如果要将QByteArray转换为字符串,请先使用data()方法将其转换为字节,然后再使用decode()将其转换为字符串:

data = self.m_process.readAllStandardOutput()
s = data.data().decode() # <---
self.m_ui.b_renderOutput.append(s)

另一种方法是将QByteArray转换为bytearray,然后使用decode()

data = self.m_process.readAllStandardOutput()
s = bytearray(data).decode() # <---
self.m_ui.b_renderOutput.append(s)