Programming Language/Python

파이썬에서 쉘 스크립트 사용하기

깜태 2021. 9. 9. 18:42
728x90

파이썬에서 쉘 스크립트의 결과를 받아보는 경우가 필요해서 공부한 결과를 쓴다.

파이썬에서 OS 명령어를 사용하는 방법은 크게 2가지가 있다.

 

1. os 라이브러리 이용하기

2. subprocess 라이브러리 이용하기

 

검색해본 결과 두 개의 차이점은
os는 순차적으로 실행해서 해당 명령어가 끝날 때까지 기다린다는 점,
subprocess는 새로운 프로세스로 생성해서 실행한다는 점이다.

 

순차적으로 실행한다면 os가 좋겠지만 나는 subprocess로 진행하기로 했다.

 

subprocess는 다양한 메소드로 call, run, check_output 등이 존재하지만

나는 파이썬에서 쉘 스크립트의 결과를 받아보는 게 필요했기 때문에 check_output으로 진행하였다.
(꼭 check_output이 아니여도 됨, 자세히는 모름)

 

command = "iwlist wlan0 scan | grep ESSID"  
output = subprocess.check_output(command)

 

"iwlist wlan0 scan | grep ESSID" 명령어로 테스트했는데 에러가 발생하였고,
"|" 의 경우를 어떻게 처리하는지 궁금했는데 의외로 방법은 아주 간단했다.

명령어 옵션에 shell=True를 입력해주면 된다.

따라서 내 결과는 다음과 같다.

 

command = "iwlist wlan0 scan | grep ESSID"  
output = subprocess.check_output(command, shell=True)

 

참고

 

https://superuser.com/questions/595750/how-to-execute-a-chained-set-of-linux-commands-from-python

https://www.hides.kr/703

728x90