2013-07-11 3 views
1

내가 더 문제는 popen 객체를 생성 및 출력 내가 보내고있다 인수 곳이 cmd를 사용하여 그것으로 다른 프로그램을 실행이 없습니다 ...파이썬 - 후는 popen 개체를 두 번

k = subprocess.Popen(output, stdout=PIPE, stdin=PIPE, stderr=PIPE) 

하지만를 사용하여 I 동일한 Popen 개체를 사용하여 동일한 명령 프롬프트에서 다른 명령을 실행하려고합니다. 필자는 의사 소통()을 사용했고 그것은 표준 출력이었습니다. stdout.readline()과 함께 stdin.write()를 사용하고 있습니다.

f = open("sample.txt")  
reed = f.read() 
f.close() 
k.stdin.write(reed) 
p="i" 
while p.find("0.0)") == -1: 
    p = p+k.stdout.readline() 
print p 

어떻게해야합니까?

내가 필요한 유일한 것은이었다 EDIT

p = k.communicate(input=reed)[0] 

. 나는 의사 소통에서 '입력'을 사용해야한다는 것을 몰랐다. 나는 항상 의사 소통 (리드)만을 사용했다. 나는 그 어리석은 옛날 회기가 필요 없다.

답변

0

대신 subprocess.call을 사용해 보셨습니까?

http://docs.python.org/2/library/subprocess.html

+0

예, 방금 시도했습니다. 그것은 내 상황을 개선하지 않습니다. 첫 번째 명령이 처음 만들어지고 결과 텍스트가 p로 올바르게 읽히고 올바르게 인쇄 될 때 실행되는 첫 번째 명령이 발생합니다. 문제는 (위의 코드) 두 번째 파일을 열고 변수에 저장하면 그 텍스트를 같은 명령 프롬프트의 인수로 사용하려고 할 때 아무 일도 일어나지 않는 것입니다. 그것은 같은 명령 프롬프트를 두 번 호출 할 수없는 것 같습니다. – user2573815

관련 문제