python 簡單的人機互動

2021-08-15 02:00:53 字數 1480 閱讀 4170

要求輸入yes還是no,嘗試了幾種方法,發現可以通過paramiko解決,**如下:

import paramiko

#get an paramiko connection

def get_ssh_interact_conn(server_ip, username, passwd):

#parameter is server ip, username, password
t = paramiko.transport((server_ip, 22))

t.connect(none, username, passwd)

chan = t.open_session()

# timeout

chan.settimeout(30)

#open remote terminal

, 如果要輸入的命令很長比如有2000個字元,那麼久需要設定pty的寬度,否則如果使用預設寬度,可能導致要執行的命令被中間截斷,比如預設寬度是5,而傳送的命是「ps -ef | grep welcom」,那麼在傳送命令時候就可能變成,「ps -ef \r | grep welcom」,從而導致命令執行失敗

chan.get_pty(width=2048)

#activate terminal

chan.invoke_shell()

return chan

def get_live_tags_list(svn_list_command):

# this method can input yes automatically, when encounter 'store password unencrypted (yes/no)? '

live_revision_version_list =

chan = get_ssh_interact_conn('10.202.10.202', 'root', 'root')

chan.send(svn_list_command + '

\n')

time.sleep(3)

live_tags_info = chan.recv(2048)

print live_tags_info

if 'store password unencrypted (yes/no)'

in live_tags_info:

print chan.send('yes

\n')

time.sleep(3)

result = chan.recv(2048)

print result

chan.send(svn_list_command + '

\n')

chan.close()

if name == '__main__':

get_list_tags_list('svn list ')

有人推薦expect,我覺得有點麻煩,這個感覺更簡單,有沒有其他更好的方法,也沒有研究過

乙個簡單的人機互動指令碼 ssh

下面獻上乙個簡單的人機互動指令碼,用來展示expect方法的強大而美妙的功能。該指令碼能夠檢測ssh命令執行之後的提示語,自動匹配完成密碼輸入。複製下面的指令碼,儲存到檔案ssh.sh中即可執行。1 若沒有執行許可權,通過 chmod a x ssh.sh 新增 2 若檔案ssh.sh在window...

人機互動模擬題

1.人機互動學是乙個重要的學科分支,如果要有效地設計人機互動的產品和服務,遵循十項準則是什麼 1確實理解計算機和裝置的任務流程,避免引入不必要的流程 2確定目標使用者的屬性和能力,充分考慮人與人之間的區別 3充分利用人和工具各自在完成任務時的擅長之處,達到完美平衡 4為所有可能從中受益的使用者群體進...

人機互動筆記2

樣式優先順序 id高於class 標籤內樣式高於標籤外樣式 class有兩個屬性的話,後邊的覆蓋前邊的樣式 charset utf 8 css練習title rel stylesheet type text css href css mycss.css type text css pdiv p1.p...