밥컴의 블로그입니다

파이썬에서 리눅스 커맨드를 실행하기 위해서는 보통 os.system을 사용합니다. 하지만 이것은 실행만 하는 용도지 실행에 대한 결과를 저장하는 용도로는 조금 부적합 하더라고요.


그래서 리눅스 커맨드 결과를 파이썬 변수로 저장하는 방법에 대해서 알아보겠습니다.


간단한 예시를 보면, 우리가 특정 프로세스(여기서는 aaaa) 가 작동하고 있는지 찾기 위해서 다음과 같은 명령어를 사용합니다.


$ ps aux | grep aaaa


뭐 다른 방법도 많이 있는 것으로 알고 있지만 일단 이걸 제가 가장 많이 사용하기 때문에 이 예시를 들었습니다.


이에 따른 결과 값으로 


root     48973  0.0  0.0  17164  2472 pts/28   S+   11:19   0:00 grep --color=auto aaaa


위와같은 결과를 파이썬에서 변수로 담는 방법으로   subprocess를 사용하면 간단하게 할 수 있습니다.


1. ps aux 변수로 담기




grep 이전에 ps aux를 변수로 담는 방법으로는 다음과 같은 코드를 사용하면 됩니다. 위와같이 결과를 데이터에 저장한 뒤에 파이프를 닫아야지 결과가 제대로 나와요. 반대로 하면 에러 뱉습니다.

2. ps aux | grep aaaa 변수로 담기

본 글의 메인인 ps aux|grep aaaa변수로 담는 방법입니다.


  

A. ps aux | grep aaaa | head -1 변수로 담기


그 이상의 | 를 사용하려면 다음과 같이 사용하면 됩니다.


주석은 과감히 생략 위의 예제들을 보면 간단하게 이해 할수 있을거에요



참 쉽죠?

더 많은것도 같은 방법으로 하면 됩니다.