-->

GoogleSearch



Scientist. Husband. Daddy. --- TOLLE. LEGE
외부자료의 인용에 있어 대한민국 저작권법(28조)과 U.S. Copyright Act (17 USC. §107)에 정의된 "저작권물의 공정한 이용원칙 | the U.S. fair use doctrine" 을 따릅니다. 저작권(© 최광민)이 명시된 모든 글과 번역문들에 대해 (1) 복제-배포, (2) 임의수정 및 자의적 본문 발췌, (3) 무단배포를 위한 화면캡처를 금하며, (4) 인용 시 URL 주소 만을 사용할 수 있습니다. [후원 | 운영] [대문으로] [방명록] [옛 방명록] [티스토리 (백업)]

이 블로그 검색

Python: unix system calling

라벨:



http://docs.python.org/library/subprocess.html

[1] using subprocess

e.g. subprocess.call( ["grep", "-w", "query","file"])

import subprocess
import os
from subprocess import Popen
from subprocess import PIPE
q1 = "xxx"
q2 = "yyy"
file = "file
##
# grep -w q1 file | grep q2
#
p1 = Popen(["grep","-w",q1,file], stdout=PIPE)
p2 = Popen(["grep", q2], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close()  # Allow p1 to receive a SIGPIPE if p2 exits.
output = p2.communicate()[0]
print output


[2] using os.system


import os
cmdln =  "grep -w " + q1_c + " " + db + " | grep -w " + q2_c + "|  awk -F\"\t\" '{print $1}'  "
os.system( cmdln )

---> this is not "quiet mode". quite problematic



[3] using commands

cmdln = "grep -w " + q1_c + " " + db + " | grep -w " + q2_c + "|  awk -F\"\t\" '{print $1}'  "
out = commands.getstatusoutput( cmdln )  # or simply getoutput
status = out[0]  # this is error code
bingo = out[1]   # retrieved data







라벨:





Scientist. Husband. Daddy. --- TOLLE. LEGE
외부자료의 인용에 있어 대한민국 저작권법(28조)과 U.S. Copyright Act (17 USC. §107)에 정의된 "저작권물의 공정한 이용원칙 | the U.S. fair use doctrine" 을 따릅니다. 저작권(© 최광민)이 명시된 모든 글과 번역문들에 대해 (1) 복제-배포, (2) 임의수정 및 자의적 본문 발췌, (3) 무단배포를 위한 화면캡처를 금하며, (4) 인용 시 URL 주소 만을 사용할 수 있습니다. [후원 | 운영] [대문으로] [방명록] [옛 방명록] [티스토리 (백업)] [신시내티]

-