(arnd 4기가바이트)Subprocess.Popen stdout을 반복하는 루프를 끊는 방법?
gawk_exp filename.gz cmd를 =하려면 zgrep "검색 텍스트"또 다른 둔한는
p1=subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
p=subprocess.Popen(gawk_exp, shell=True, stdin=p1.stdout, stdout=subprocess.PIPE)
입니다 greop 된 줄에서 필터링 할 표현식.
아래와 같이 다음에 반복 P :
for line in iter(p.stdout.readline, ''):
..
..
..
if(success):
break
이 결과 "그렙 : 기록 출력 : 깨진 파이프"오류.
그러나 특정 조건을 충족하는 경우 for 루프에서 일찍 종료하고 싶습니다.
내가 같은 많은 도로를 시도했습니다, 다른 순서로
if(success):
os.kill(p.pid, signal.SIGKILL)
os.kill(p1.pid, signal.SIGKILL)
OR
subprocess.Popen.kill(p1.pid, p.pid)
subprocess.Popen.kill(p.pid)
OR
p1.stdout.close()
p.stdout.close()
하지만 아무 소용.
어떻게 정상적으로 루프에서 깨질 수 있습니까?
버전 정보 : 파이썬 2.4.3 (# 1 이세 (11) 2009 년 14시 9분 37초) [GCC 4.1.2 20080704 (레드햇 4.1.2-44)]에서 동시에
감사합니다. 불행히도 필자는 2.4.3을 사용할 의무가 없으므로 사용할 수 없다. – Aymer