我正在编写一个Python程序,它使用子进程模块通过ssh与设备的管理界面进行通信。有时,设备会提示输入的行不是换行符。如何让subprocess.communicate()将这些行返回给我?有没有办法读取无缓冲和逐字符?产生的I / O量非常小,所以我不担心这里的高开销。
答案 0 :(得分:1)
使用bufsize=0
打开流程将根据the subprocess docs.关闭输出缓冲我认为您仍然需要传递一些自定义文件类对象(例如StringIO
)进入Popen
stdout
或stderr
,您必须阅读这些内容; communicate()
在返回任何命令输出之前等待进程终止。