2012-06-06 2 views
3

명령 줄에서 실행할 수있는 프로세스가 있습니다. 명령 줄에서 파일을 계속 쓰면서 중지 할 때까지 계속해서 액세스 할 수 있습니다. 프로세스가 실행 중입니다.pexpect에서 파일 쓰기 명령이 작동하지 않을 것이라고 생각했습니다.

그러나 pexpect를 통해 동일한 명령을 실행하면 파일은 pexpect 인스턴스를 중지 할 때까지 비어 있습니다 (읽을 수는 있지만). 그런 다음에 만 파일이 데이터로 채워집니다.

이 기능은 pexpect의 기능일까요? 아니면 여기서 뭔가 잘못하고 있습니까?

pexpect 명령 : 나는 airodump-ng 사용한 적이

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

'pexpect'를 사용하는 코드를 표시 할 수 있습니까? – spatar

+0

위의 코드를 추가했습니다. 그래서 내가 코드를 실행할 때 파일 (/ root/desktop/test)은 프로그램을 종료 할 때만 채울 것이지만 터미널에서 수동으로 명령을 실행할 때 파일은 즉시 작성됩니다 .. – bananamana

+1

정말 상호 작용해야합니까 'pexpect '를 사용하는'airodump-ng'? 아니면 단순히'subprocess' 모듈을 사용할 수 있습니까? 나는'pexpect'가'expect' 또는'interact' 문이 없을 때 사물을 막아 버리는 지 궁금합니다. – larsks

답변

0

; 이 화재를하고 운동 (어떤 상호 작용을) 잊어 버린 경우, 당신은 당신이 상호 작용을해야하는 경우, 그냥 하나 개의 문자열에 인수를 넣어 같은 ls -la

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

비 대화 형 작업 pexpect.run()를 사용해야

child = pexpect.spawn('airodump-ng -a -w /root/Desktop/TEST --output-format csv %s' % INTERFACE) 
관련 문제