当输出有很多行时,pyserial的readline无法读取最后一些行

时间:2013-02-02 04:41:07

标签: python pyserial

我正在尝试使用pyserial与主板进行交互,我正在发送一些命令并等待他们的回复使用这段代码等待=>提示

# Waits till it finds the => prompt
def s_uboot_prompt(ser):
    value = ""
    matcher = re.compile("\=\>")
    trymatcher = re.compile("try")
    while (not matcher.search(value)):
               if( trymatcher.search(value.strip()) ):
                        print "******* Command failure. Exiting ..... **********"
                        ser.write("boot\r")
                        ser.close()
                        sys.exit(0)

               value = ser.readline()
               print value
               time.sleep(2)

它适用于所有命令,但是对于其中一个输出非常大的tftp命令,它无法读取最后几行并且上面的代码永远循环。有什么理由发生这种情况吗?我无法想到任何合乎逻辑的理由。请注意,它无法读取最后几行。

thnks

0 个答案:

没有答案