当有一些数据可供读取时,您应该使用readyReadStandardOutput
和readyReadStandardError
信号来获得通知。QProcess
如果你想发送两行,你只需要使用换行符将它们分开。
例子:
from PyQt4.QtCore import *
app = QCoreApplication([])
process = QProcess()
def read_out():
print 'stdout:', str(process.readAllStandardOutput()).strip()
def read_err():
print 'stderr:', str(process.readAllStandardError()).strip()
process.readyReadStandardOutput.connect(read_out)
process.readyReadStandardError.connect(read_err)
process.start('python -i')
process.write('2+2\n')
process.write('1+1\n')
process.closeWriteChannel()
process.waitForFinished()
app.processEvents()
输出:
标准错误:Python 2.7.4(默认,2013 年 4 月 19 日,18:28:01)
[GCC 4.7.3] 在 linux2 上
标准错误:输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。
标准错误:>>>
标准输出:4
标准错误:>>>
标准输出:2
标准错误:>>>
注意:不能保证带有4
和的2
行将是两个单独的读取。也可以
标准错误:Python 2.7.4(默认,2013 年 4 月 19 日,18:28:01)
[GCC 4.7.3] 在 linux2 上
标准错误:输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。
标准输出:4
2
标准错误:>>> >>> >>>