일부 데이터가 파이프에 나타날 때까지 프로세스를 일시 중지하는 python (2.7)에서 stdin 블로킹 읽기 작업을 수행하는 방법은 무엇입니까?파이썬 표준 입력에서 블로킹
read()
의 문제는 처음으로 반환하면 read()
이 더 이상 차단되지 않는다는 사실에 있습니다. 예 :
echo 'test test ' | python test.py
# test.py
import sys
while True:
string = sys.stdin.read() # Blocks only for the first time
print '!!!!!!!!'
'pipe'는 텍스트'test test'를 스크립트에 보내고 연결을 닫습니다 - 다음'read()'로 무엇을 기대합니까? – furas
다른 프로세스 (예 : 상위 프로세스)가이 프로세스의 stdin에 쓸 수 있습니다. –
부모 프로세스는 스크립트가 아닌'echo'에만 쓸 수 있습니다. – furas