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
728x90
'Programming Language > Python' 카테고리의 다른 글
[Python] String type 한글 바이트 -> 한글 변환 (0) | 2022.04.11 |
---|---|
requests 사용시 주의사항 (0) | 2022.02.04 |
[shapely] 지정된 모듈을 찾을 수 없습니다 (0) | 2021.08.23 |
애플워치로 HRV 데이터 추출하기 (2) | 2021.07.02 |
[python] joblib.load() 에러 (0) | 2021.05.12 |