[Python] stdin, stdout, pipeline 이용해 데이터 처리하는 방법

2021. 4. 28. 01:49 Python/Python 프로그래밍

stdin과 stdout을 이용해서 데이터를 파이핑할 수 있다.

 

파일에 숫자가 포함된 줄이 몇개나 있는지 확인하는 방법

import sys, re 

regex = sys.argv[1]

for line in sys.stdin:
    if re.search(regex, line):
        sys.stdout.write(line)
import sys

count = 0
for line in sys.stdin:
    count += 1
print count

 

$ cat SomeFile.txt | python egrep.py “[0-9]” | python line_count.py

 

문서의 단어를 모두 세어 보고 가장 자주 나오는 단어를 출력해주는 코드

import sys
from collections import Counter

# 출력하고 싶은 단어의 수를 첫 번째 인자로 입력
try:
    num_words = int(sys.argv[1])
excpet:
    print "usage: most_common_words.py num_words"
    sys.exit(1)
  
counter = Counter(word.lower()
                  for line in sys.stdin
                  for word in line.strip().split()
                  if word)

for word, count in counter.most_common(num_words):
    sys.stdout.write(str(count))
    sys.stdout.write("\t")
    sys.stdout.write(word)
    sys.stdout.write("\n")

 

$ cat the_bible.txt | python most_common_words.py 10

[참고] 밑바닥부터 시작하는 데이터과학

 

출처 : ourcstory.tistory.com/220?category=630693