Python:如何让脚本进入和退出minicom终端?

Python:如何让脚本进入和退出minicom终端?,python,linux,bash,loops,subprocess,Python,Linux,Bash,Loops,Subprocess,为了进入minicom并保存日志,我使用“sudo minicom-C nameoffile”,但我想在循环中执行此操作,可以使用子流程打开minicom,但我无法在循环中找到任何东西退出minicom并继续循环,因为您需要输入“ctrl-a,然后x”或“ctrl-a,然后q”之后,必须按enter键确认。有人有什么想法或建议吗?第一个(显而易见的)解决方案 可能需要更多的努力(或不需要——由你决定),最好的方法可能是()然后对数据做任何你喜欢的事情——将数据写入文件,解析,发送给NASA或以上

为了进入minicom并保存日志,我使用“sudo minicom-C nameoffile”,但我想在循环中执行此操作,可以使用子流程打开minicom,但我无法在循环中找到任何东西退出minicom并继续循环,因为您需要输入“ctrl-a,然后x”或“ctrl-a,然后q”之后,必须按enter键确认。有人有什么想法或建议吗?

第一个(显而易见的)解决方案 可能需要更多的努力(或不需要——由你决定),最好的方法可能是()然后对数据做任何你喜欢的事情——将数据写入文件,解析,发送给NASA或以上所有方面。:)



如果您坚持围绕该解决方案开展工作:

我能想到的一种可能性。。。 正在将minicom命令传送到
tee
。通过管道传输
tee
时,您可以给它一个文件名(要登录),并将管道传输
tee
作为您自己的二进制/脚本的输入。这应该负责记录和解析输入。(我还没有在minicom上试用过,我不确定你将如何像那样退出你的管道程序)。

我能想到的另一种可能性。。。 重定向到一个文件(
),然后编写一个不同的二进制/脚本,该脚本将在写入文件时读取该文件(如
tail-f
)。 在编写python文件时读取该文件的示例。

因为它是串行数据,我猜它相当慢(特别是NMEA),所以我认为如果您将它写入文件并使用不同的二进制/脚本读取它,不会有太多延迟。


您希望运行minicom多长时间?作为一个子进程运行它,然后从外部(从父进程)杀死它怎么样?@ArnonZilca感谢您的评论,很抱歉回答得太晚,但是在我杀死它之后,它还能再次运行吗?我需要运行循环至少一个小时,minicom必须被记录,grepped和行将被附加到一个列表,然后它必须关闭,在相同的例程必须去。你想运行它,杀死它,运行它,杀死它。。。或者您想一直运行它,并不时对其进行采样。配置或设备是否从一个示例更改为另一个示例?@ArnonZilca是的,我想运行它,杀死它并使其成为一个循环,因为我认为如果我一直运行它,我将无法使用Bash收集“iwlist输出数据”或NMEAsentences@ArnonZilca不,一旦连接,它总是被视为ttyUSB1、ttyUSB2和ttyUSB3,我用于为该设备收集数据的是ttyUSB3,我设置并将ttyUSB3保存到minicom。如果不需要使用minicom,则使用
pyserial
要容易得多。第一个建议是+1。文件写入延迟问题来自缓冲,快速数据实际上比慢速数据容易。@需要DrV minicom,因为我不能直接从python脚本发送AT命令。@Arnon Zillca,谢谢你的回答,我刚刚编写了一个代码,通过pyserial读取,但它没有读取AT命令,它只是读取了一个“a”从3G模块。ser3g=serial.serial(“/dev/ttyUSB3”,115200,timeout=5)time.sleep(1)ser3g.write(“AT+CSQ”)time.sleep(1)response=ser3g.read()print>>文件,日期,',',val[:42],,,,,,,数据,response@Arnon齐尔卡,我现在唯一想到的是在循环中捕获minicom终端,但我不知道如何在循环中退出minicom,比如运行它-杀死它-运行它。。。。等等为了捕获我所做的是'sudo''minicom'-C''filename',你知道我如何在循环中退出minicom终端吗?这两种解决方案(pySerial除外)都建议你不使用run kill run kill。我认为通过管道将minicom传输到tee,然后传输到解析器python脚本,或者将minicom重定向到一个文件,然后在不同的过程中读取该文件会容易得多。