Python獲取系統互動式shell,跨平台

2022-05-10 11:23:11 字數 1212 閱讀 3551

昨天搞了半天,終於把這兩個環節打通了。後續可以進一步呼叫adb命令執行一些操作,細節說明已在**中新增注釋。

圖1:程式呼叫「adb devices」後的運**況

**如下:

import subprocess

import threading

import platform

def run_cmd(cmd):

plat = platform.system()

try:

p = subprocess.popen(cmd,

stdout=subprocess.pipe, stderr=subprocess.pipe, shell=true) #shell=true 保障多個引數支援

#return_code = p.poll() #獲取cmd執行結束標誌,如果未結束,則返回值為none。

while p.poll() is none:

line = p.stdout.readline() #逐行讀取結果,可以執行迴圈指令,如果是readlines,不會顯示吧。

line = line.strip() #python strip() 方法用於移除字串頭尾指定的字元(預設為空格)。

if line:

if "windows" in plat:

print line.decode("gb2312")

else:

print line

#print "[*] done.\r\n"

except:

print "[*] failed to execute command.\r\n" #確保誤操作不導致程式崩潰

def cmd_loop():

print "[*] your command:"

while true:

cmd = raw_input(">>>")

#threading.thread(target=run_cmd,args=(cmd,)).start()

run_cmd(cmd)

#if "q" in raw_input():

#print "[*] exited by press q"

#exit(0)

cmd_loop()

Python互動式程式設計

使用pip安裝notebook 在工作目錄下啟動notebook 安裝畫圖工具matplotlib測試 互動式程式設計不需要建立指令碼檔案,是通過 python 直譯器的互動模式進來編寫 linux上你只需要在命令列中輸入 python 命令即可啟動互動式程式設計 windows上在安裝python...

互動式系統(MVC模式)

控制器在其事件處理過程中接受使用者輸入 對事件進行解讀並啟用模型的服務過程。模型執行請求的服務,導致其內部資料發生變化。模型通知所有向變更傳播機制註冊了的檢視和控制器,即呼叫他們的更新過程。每個檢視都向模型請求修改後的資料,並在螢幕上重新顯示自己。每個已註冊的控制器都從模型 獲取資料,以啟用或禁用某...

python互動式直譯器

linux 下鍵入命令python 啟動python的互動式直譯器。如圖 互動式直譯器,顧名思義,互動的直譯器,你每鍵入一行然後回車,都會有所反應 這樣一想,臨時充當下計算器也是個不錯的選擇。當然也有一些侷限,例如 1 進行1 2這樣的運算後結果居然為0!這樣看來,python與c語言有點相似的,會...