Python:用 glib 监控子进程输出?
Posted
技术标签:
【中文标题】Python:用 glib 监控子进程输出?【英文标题】:Python: monitor subprocess output with glib? 【发布时间】:2022-01-04 13:48:11 【问题描述】:到目前为止,我已经使用以下方法来捕获和处理子进程的输出:
process = subprocess.Popen(<some-command>, shell=True, stderr = subprocess.PIPE)
while True:
output = str(process.stderr.readline())
if process.poll() is not None:
break
if output:
if '<some-output>' in output:
print('<something>')
elif'<some-other-output>'in output:
print('something-else')
但是,我现在需要在程序执行其他操作时在后台监视输出。 这个程序是围绕 Glib Mainloop 构建的。
我尝试将它添加到 Glib Idle,但这似乎不起作用。
任何建议将不胜感激!
【问题讨论】:
【参考方案1】:Python 标准库中的 I/O 操作不能很好地与 GLib 的主循环和 I/O 操作集成。在这种情况下,我建议使用 GLib.Subprocess
而不是 Python 模块。
【讨论】:
以上是关于Python:用 glib 监控子进程输出?的主要内容,如果未能解决你的问题,请参考以下文章