2014-07-18 70 views
0

我正在使用Node來執行Python腳本。 Python腳本SSH進入服務器,然後運行Pig作業。我希望能夠從Pig工作中獲得標準,並將其顯示在瀏覽器中。通過SSH無緩衝寫入文件的stdout

我正在使用PExpect庫進行SSH調用,但在完全完成(至少是我寫入的方式)之前,它不會打印豬呼叫的輸出。有關如何重組它的任何提示?

child.sendline(command) 
child.expect(COMMAND_PROMPT) 
print(child.before) 

我知道我不應該期待的命令提示符(因爲那將只顯示當過程結束),但我不知道我應該期待。

+0

如果您將'child.logfile_read'設置爲可寫的類文件對象(例如'sys.stdout'),那麼Pexpect會在讀取輸出時轉發輸出。 –

+0

這工作完美,不知道這是如此簡單。非常感謝。 – jjwon

回答

1

重複一個答案我的意見,因爲它解決了這個問題:

如果設置child.logfile_read可寫文件的對象(例如sys.stdout),Pexpect的將正向輸出有,因爲它讀取它。

child.logfile_read = sys.stdout 
child.sendline(command) 
child.expect(COMMAND_PROMPT)