Introduction
파이썬을 이용해서 특정 시간마다 지속적으로 콘솔 프로그램을 실행 할 일이 있어서 알아보았습니다. 참고 글에 따르면 모의해킹 같은 분야에서 공격용으로 사용하나 보네요.
1. os.system
1 2 3 4 5 6 7 8 9 10 | import os import sys import time i = 0 while(i < 5): os.system ('python3 main.py') # 원하는 콘솔 ㅕ i += 1 time.sleep(60) # 60초 마다 명령문 실행 | cs |
위와 같이 단순히 명령 실행을 위해 사용할 때 유용합니다.
실행 결과 성공 유무를 결과값으로 리턴해주기 때문에 결과값을 특정 변수에 저장하는 목적 등으로 사용하기에는 적합하지 않습니다.
위의 단점을 보완할 수 있는 다른 방법은 subprocess가 있습니다.
2. subprocess
os.system과 같이 단순히 “실행”만 시킬 때는 “call” 메서드를 이용하면 됩니다.
1 2 3 | import subprocess subprocess.call ('ls -al', shell=True) | cs |
특정 명령 수행 결과를 바탕으로 if 조건문을 걸때에는 call이 아닌 check_ouput을 이용 합니다.
예를들어 특정 파일 실행결과가 “A” 혹은 “B”라고 가정하고 “A” 일 경우 “1”을 출력하고 “B”일 때 “2”을 출력하려면
다음과 같이 코드를 작성하시면 됩니다.
1 2 3 4 5 6 7 | import subprocess result = subprocess.check_output ('./program' , shell=True) if result == 'A' : print "1" elif result == 'B' : print "2" | cs |
References
http://noplanlife.com/?p=949
제 글이 도움이 되셨다면 간단하게 '공감', '댓글' 부탁드립니다!
'Languages > Python' 카테고리의 다른 글
파이썬 데코레이터(Decorator) (0) | 2019.04.09 |
---|---|
[공유] [점프 투 파이썬] 정규 표현식 시작하기 (0) | 2019.03.15 |
[공유] 파이썬에서 if __name__ == "__main__"을 쓰는 이유 (0) | 2018.12.12 |
댓글