반응형
+ 쉘 커맨드 실행하기.
1. os.system 구문을 이용해 명령 실행 하기
import os
import sys
os.system ('ls -al | grep "user")
// pipe command is available
위와 같이 단순히 명령 실행을 위해 사용시에는 문제가 없으나,
결과값을 특정 변수에 저장하는 목적으로 사용하기에는 적합하지 않다.
(명령 실행 결과의 성공 유무를 리턴하기 때문에…)
따라서 위의 단점을 보완할 수 있는 방법이 바로 subprocess 이다.
2. subprocess 이용하여 명령 실행하기
먼저 os.system과 같이 단순히 “실행”만 시킬 때는 “call” 메서드를 이용하면된다.
import subprocess
subprocess.call ('ls -al', shell=True)
그러나 특정 명령 수행 결과를 바탕으로 if 조건문을 걸때에는 call이 아닌 check_ouput을 이용해야 한다.
예를들어 특정 파일 실행결과가 “AAA” 혹은 “BBB”라고 가정해보자.
“AAA” 일 경우 “123”을 출력하고 “BBB”일 때 “456”을 출력하려면 다음과 같이 코드를 작성하면 된다
import subprocess
result = subprocess.check_output ('./program' , shell=True)
if result == 'AAA' :
print "123"
elif result == 'BBB' :
print "456"
위와 같이 check_output 메서드를 사용하면 해당 실행 결과를 스트링값으로 리턴해주기 때문에
실제 실행결과값을 바탕으로 조건 구문을 사용할 수 있게 된다.
'Python' 카테고리의 다른 글
Python 데이터 저장/로딩 Pickle (0) | 2018.04.25 |
---|---|
Python 커맨드라인 파싱 (0) | 2018.04.17 |
Python JSON 사용하기 (0) | 2018.04.10 |
Python 외부 모듈사용.time,string,random, try except (0) | 2018.04.09 |
Python 강좌7 클래스 (0) | 2018.03.27 |