를 사용하여 처리합니다. 그렇다면이 파이썬 코드를 사용하여 호출을 자동화하는 방법 :입력 내가 보통과 같이 터미널에서 실행 명령 (푼다)가 파이썬
from subprocess import call
call(['foo'])
foo 로의 입력을 자동화하는 방법은 무엇입니까?
를 사용하여 처리합니다. 그렇다면이 파이썬 코드를 사용하여 호출을 자동화하는 방법 :입력 내가 보통과 같이 터미널에서 실행 명령 (푼다)가 파이썬
from subprocess import call
call(['foo'])
foo 로의 입력을 자동화하는 방법은 무엇입니까?
사용 Popen
및 communicate
:
from subprocess import Popen, PIPE
process = Popen('foo', stdout=PIPE, stderr=PIPE)
(stdout, stderr) = process.communicate("YOUR INPUT HERE")
print stdout
이것은 작동하지 않습니다. 나는 여전히 프롬프트를 얻었고 나머지 코드는 작동하지 않는 것 같습니다. – tdk
@ user1928721 "작동하지 않는 것 같습니다."* 더 자세하게 말하십시오. 그것은 의사에게 가서 "상처를 입히고"그들이 당신을 진단 할 것을 기대하는 것과 같습니다. 정확하게 작동하지 않는 것을 진술하십시오. 당신은 어떤 결과물을 보았습니까? 어떤 행동을합니까? 너는 무엇을 기대 하느냐? – SethMMorton
진심으로 사과드립니다. 나는 파이썬과 리눅스 프로그래밍의 새로운 세계에 새로운 사람이다. 1 분 이상 동안 입력하라는 즉석 프롬프트가 표시됩니다 (예 : '문자열 입력 :'). 자동 입력이 수행되지 않고 입력을 수동으로 입력한다고 가정합니다. 나머지 코드는 전혀 실행되지 않는 것처럼 보입니다. 즉, 커서가 10 분 동안 표시되고 커서가 몇 초 안에 결과를 제공하기 때문에 프로세스가 종료됩니다 ('입력 된 명령의 결과'). – tdk
당신은 타사 pexpect 모듈 (Here is the API)에서 확인할 수 있습니다 :
import pexpect
child = pexpect.spawn('foo')
child.expect('enter the string:')
child.sendline('STRING YOU KNOW TO ENTER')
child.close() # End Communication
'호출 ([ '문자열을 입력'(입력)]) '파이썬 2.x에서는'call ([raw_input()])'이된다. – karthikr
이것은 foo에 대한 참조가 없다. 어떻게 부르죠? – tdk
@ user1928721 위의 주석에서이 방법을 사용하지 마십시오. 당신이 원하는 것이 아닙니다. – SethMMorton