can't print readAllStandardOutput correctly decoded

假如想象 提交于 2019-12-02 08:10:08

问题


I have this code to print into a text field all the output from a process:

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

What I get in the output is this:

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'

I'm not able to decode it and print it in the right way. I know that what comes from readAllStandardOutput is a QByteArray


回答1:


If you want to convert QByteArray to string, first convert it to bytes using the data() method, and then decode() to convert it to string:

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

Another method is to convert the QByteArray to bytearray and then use decode():

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


来源:https://stackoverflow.com/questions/57035206/cant-print-readallstandardoutput-correctly-decoded

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!