2012-11-20 5 views
2

pexpect.spawn을 함수에 넣을 때 실패하는 것 같습니다. 아래 예제에서는 '/tmp/no.txt'와 '/tmp/yes.txt'를 모두 만지길 기대합니다. /tmp/yes.txt 만 감습니다. 'import pexpect'에 대한 모든 확실한 위치를 시도했습니다. 오류가 발생하지 않고 실행되지 않습니다. 어떤 제안을 주셔서 감사합니다!함수에 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

관련 문제