파이프를 통해 에 연결된 일련의 프로세스에 일부 데이터를 공급하려고합니다. 그러나 나는 그것을 닫을 수 없다.왜 내 Popen 파이프 차단합니까?
p1 = subprocess.Popen("sort", stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p2 = subprocess.Popen("uniq", stdin=p1.stdout, stdout=subprocess.PIPE)
p1.communicate(r"""
a
b
c
a""")
out, _ = p2.communicate()
print(out)
이제 프로그램이 대기 상태가됩니다. 신호를 보내야하는 또 다른 방법이 있습니까? 입력이 끝나는 p1
?
은 -주의 : 나는 창문
당신은 첫 번째 프로그램에 표준 입력을 닫아야합니다
FWIW (Linux에서 실행) 프로그램이 종료되고 (대부분의 경우 아무것도 인쇄되지 않음) –