python pipe 예제

파이프를 통해 표준 입력을 전달하고 파일의 결과를 받는 매우 간단한 예 : 때때로 사용할 수있는 하위 프로세스와 또 다른 흥미로운 트릭 (우리는 다음 섹션에서 사용할 것입니다, 사실) stdin 및 stdout을 복용 외부 파이프의 몇 에서 하위 프로세스에 대한. 이렇게하려면 먼저 입력을 파이프로 파이프하고 출력을 읽을 작업 디렉토리에 파이프 몇 가지를 만들어야합니다 : 한 번 에코 john > input_pipe가 반환하고 파이프를 닫습니다. , EOF를 보내면 자식 프로세스가 닫히고 어머니 프로세스도 종료됩니다. 우리가 할 수 있기를 바라는 것은 입력_pipe에 배관 이름을 유지하고 어머니 프로세스가 자녀를 끝내지 않고 자녀에게 계속 읽고 전달하도록하는 것입니다. 파이프라인에서 읽는 것은 기본적으로 동일한 방식으로 작동하며 인수에 대한 몇 가지 변경 사항이 있습니다. 이 예제에서는 파이프라인을 열기 전에 입력 파일의 내용을 설정해야 합니다. 그런 다음 해당 파일 이름을 입력으로 open()로 전달할 수 있습니다. 각 복제본에 사용자 지정 명령을 미리 지정하여 작은 변형으로 동일한 기본 함수를 수행하는 별도의 파이프라인을 만들 수 있습니다. 다음 예제에서는 EOF 신호가 자식의 입력으로 전송되기 전에 say_my_name.py 자식 프로세스에 세 개의 이름이 전달됩니다.

그런 다음 마더 프로세스는 자녀가 생성한 출력을 읽고 준비된 작은 텍스트 조각으로 인쇄하기 전에 자녀가 완료될 때까지 기다립니다: 파이프 모듈은 파이프라인의 개념을 추상화하는 클래스를 정의합니다. 다른. 스크립팅 된 입력의 일정 금액에 하위 프로세스를 노출하려면 stdin에서 하위 프로세스 입력을 제공하기 위해 하위 프로세스를 설정하여 파이프의 입력을 수락하고 스크립트 입력을 전달한 다음 수동으로 코드를 사용하여 어머니 프로세스의 우리가 아이에게 읽은 것을 전달하는 stdin … 참고 – 파이프는 단방향 통신 즉, 우리는 하나의 프로세스가 파이프에 쓰고, 다른 프로세스는 파이프에서 읽는 등의 파이프를 사용할 수 있습니다. 뒤집기 매뉴얼을 빠르게 읽으면 이 명령이 stdout 스트림에 대한 버퍼링을 해제한다는 것을 알 수 있습니다.

python pipe 예제