我試圖在機器之間創建一個SCP文件,並且當用戶沒有設置用於執行無密碼登錄的私有/公共證書時,我需要失敗。不幸的是,使用subprocess.Popen我無法弄清楚如何捕獲以下的輸出:Python子進程+ scp - 無法讀取所有輸出
The authenticity of host '***' can't be established.
RSA key fingerprint is ***.
Are you sure you want to continue connecting (yes/no)
它總是顯示在控制檯上,我不能在我的程序來檢測它得到它。
下面是一些示例代碼:
proc = subprocess.Popen(['scp', '[email protected]:/location/file.txt', '/someplace/file.txt',
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
proc.wait()
print 'result: %s' % repr(proc.stderr.readline())
我試過很多其他的排列。這個仍然提示我,而不是Python進入是/否。至少當我鍵入沒有,雖然我得到:
result: 'Host key verification failed.\r\n'
你可能要考慮嘗試[paramiko](http://www.lag.net/paramiko/)這是一個本地的Python SSH庫。你將會對連接有更多的控制權,並且不必處理Popen。 – 2011-06-08 22:43:17
你正在掛stderr嗎? – 2011-06-08 22:43:30
@ greg-hewgill在這種情況下,我不能使用第三方庫。 – sudoer 2011-06-08 22:50:26