2012-06-06 30 views
3

有一個過程,我可以從連續寫入數據到文件的命令行運行,直到我告訴它停止,並且可以訪問(讀取)進程正在運行。在pexpect中的文件寫入命令不像我認爲的那樣行爲

但是,如果我通過pexpect運行相同的命令,則文件保持爲空(儘管可以被讀取)直到我停止pexpect實例。只有這樣文件纔會填滿數據。

這僅僅是pexpect的一個特性,還是我在這裏做錯了什麼?

Pexpect的命令:

child = pexpect.spawn('airodump-ng', ['-a', '-w', '/root/Desktop/TEST', '--output-format', 'csv', INTERFACE]) 
+1

你能告訴我們你使用'pexpect'的代碼嗎? – spatar

+0

我添加了上面的代碼。所以,當我運行該代碼文件(/根/桌面/測試)將填充只有當我退出程序,但是當我在終端手動運行該命令該文件被瞬間寫入.. – bananamana

+1

你真的需要互動'使用'pexpect'的'airodump-ng'?或者你可以簡單地使用'subprocess'模塊嗎?我不知道在沒有任何「expect」或「interact」陳述的情況下,「pexpect」是否會阻止事物的發生。 – larsks

回答

0

我從來沒有使用airodump-ng;如果是火災,忘記鍛鍊(無交互),你應該使用pexpect.run()非交互任務,如ls -la

results = pexpect.run('ls -la') 

如果您需要互動的,只要把你的ARGS在一個串...

child = pexpect.spawn('airodump-ng -a -w /root/Desktop/TEST --output-format csv %s' % INTERFACE) 
相關問題