昨天搞了半天,終於把這兩個環節打通了。後續可以進一步呼叫adb命令執行一些操作,細節說明已在**中新增注釋。
圖1:程式呼叫「adb devices」後的運**況
**如下:
import subprocessimport 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語言有點相似的,會...