GoogleSearch
이 블로그 검색
Python: unix system calling
라벨:
Informatics
이메일로 전송BlogThis!Twitter에서 공유Facebook에서 공유
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
이메일로 전송BlogThis!Twitter에서 공유Facebook에서 공유
라벨:
Informatics
e.g. subprocess.call( ["grep", "-w", "query","file"])
import os
from subprocess import PIPE
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 주소 만을 사용할 수 있습니다. [후원 | 운영] [대문으로] [방명록] [옛 방명록] [티스토리 (백업)] [신시내티]
-