python, standard input 처리?

이런 명령을 내리고 싶다고 해보자.

find . -type f \( -iname "*.cpp" -o -iname "*.md" \)  -exec grep 'vim' '{}' \; | ./runp.py

바로 이전 글에 있는 내용을 가져왔다.
먼저, 확장자가 md 또는 cpp 인 파일에서, vim 이 포함되어 있는지를 찾는다.
이 결과를 Standard Input 으로 runp.py 에 넘겨준다.

runp 는 이 Standard Input 을 받아 어떻게든 처리해야 하는데, 과연 어떻게 해야 하려나?
어떤 모듈을 사용해야 하려나?

완벽하게 해법은 아니지만, sys.stdin 를 사용하면 된다.
이런 식으로..

import sys
for aa in sys.stdin:
   print('From std in:' + aa[12:].rstrip())

그런데, std input 없이 그냥 이 runp 를 실행하면, std input 을 기다리면서 대기하게 된다.

정확히 어떻게 쓰는지는 잘 모르지만, 이런 분위기라는 건 알 수 있었다.

Tags:

안녕하세요. 글 남겨주셔서 고맙습니다.