读命令输出我有一个嵌入式Linux设备,这里是我想使用Python做什么:如何从串行设备使用python
获得通过串行端口的设备控制台。我能做到这一点是这样的:
>>> ser = serial.Serial('/dev/ttyUSB-17', 115200, timeout=1)
现在我要到嵌入式设备的命令行中运行一个
tail
命令,就像这样:# tail -f /var/log/messages
,并捕获o/p并显示在我的python >>>控制台上。
我该怎么做?
读命令输出我有一个嵌入式Linux设备,这里是我想使用Python做什么:如何从串行设备使用python
获得通过串行端口的设备控制台。我能做到这一点是这样的:
>>> ser = serial.Serial('/dev/ttyUSB-17', 115200, timeout=1)
现在我要到嵌入式设备的命令行中运行一个tail
命令,就像这样:
# tail -f /var/log/messages
,并捕获o/p并显示在我的python >>>控制台上。
我该怎么做?
只需打开python中的文件,并保持从它readign。如果需要,可以在另一个线程:
>>> ser = serial.Serial('/dev/ttyUSB-17', 115200, timeout=1)
>>> output = open("/var/log/messages", "rb")
而且任何程序循环里面,只是做:
data = output.read()
print(data)
如果你希望它只是去控制台上打印,你继续做其他的东西,类型 类似于:
from time import sleep
from threading import Thread
class Display(Thread):
def run(self):
while True:
data = self.output.read()
if data: print(data)
sleep(1)
t = Display()
t.output = output
t.start()
首先,您需要先登录设备。 然后您可以在该设备上运行指定的命令。 注意:您要运行的命令必须受该设备支持。
现在使用open()打开串口后,您需要使用Read()找到登录提示符,然后使用write()写入用户名,同样的事情重复输入密码。
一旦你登录,你现在可以运行你需要执行
你有关于Python编程具体问题的命令? – 2011-04-17 00:25:57
@ MIke不,我不知道。我的目的完全让我的问题模糊不清,以获得更多的建议。 – abc 2011-04-17 00:27:22
我已经多次重读这个问题,我在这里没有看到实际的问题,所以@Mike并不是唯一一个想知道你的具体问题是什么的人。没有使问题更明确,你可能得不到任何**建议。 python脚本在哪里运行? tail命令在哪里运行?你是否期待python脚本将消息放入'/ var/etc/messages'?你想让python脚本运行'tail'并将这些消息输出到串口? – 2011-04-17 00:54:14