讀命令輸出我有一個嵌入式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