2012-11-20 45 views
2

當我把它放入函數時,pexpect.spawn似乎失敗。在下面的例子中,我期望它觸及'/tmp/no.txt'和'/tmp/yes.txt'。它只觸及/tmp/yes.txt。我已經嘗試了所有顯而易見的「進口陪伴」地點。它不會拋出錯誤,只是不會運行。感謝您的任何建議!pexpect在函數中產卵

import pexpect 
def fun(): 
    import pexpect 
    fail = pexpect.spawn('touch /tmp/no.txt') 

fun() 
succeed = pexpect.spawn('touch /tmp/yes.txt') 

$ ls /tmp/*.txt 
/tmp/yes.txt 
$ 

回答

3

你需要等待運行的命令:

import pexpect 
def fun(): 
    #import pexpect you've already imported pexpect you don't need to import it again 
    fail = pexpect.spawn('touch /tmp/no.txt') 
    fail.wait() 

fun() 
succeed = pexpect.spawn('touch /tmp/yes.txt') 
succeed.wait() 
+0

這似乎並不重要。事實上,功能以外的觸摸沒有等待就可以正常工作。不過謝謝你的想法! – mnate

+0

我想在觸摸過程完成之前函數正在返回 – scripts