-
[Python] 파이썬에서 shell 명령어 사용하기 (shell script 작성법)언어/파이썬 & 장고 2016. 12. 1. 13:22
파이썬에서 쉘 명령어를 내리는 방법은 아래와 같습니다.
import os os.system('ls -la') total 48 drwxr-xr-x@ 9 user staff 306 Dec 1 13:16 . drwxr-xr-x 20 user staff 680 Nov 3 14:58 .. drwxr-xr-x@ 8 user staff 272 Dec 1 11:03 .idea -rw-r--r-- 1 user staff 9 Nov 23 17:57 aa.log -rw-r--r-- 1 user staff 1888 Dec 1 13:16 gocom.py
하지만 여기서 출력되는 내용을 변수로 담아서 사용이 불가능합니다. os.system()은 명령이 성공적으로 실행하면 0을 리턴하고 그렇지 않으면 -1과 같은 숫자를 리턴합니다.
쉘 명령어를 내린 다음, 결과를 받아서 또 다른 작업을 처리하려고 할 때 아래와 같이 사용합니다.
import os result = os.popen('ls -la').read() print(result) # byte타입으로 리턴 total 48 drwxr-xr-x@ 9 user staff 306 Dec 1 13:16 . drwxr-xr-x 20 user staff 680 Nov 3 14:58 .. drwxr-xr-x@ 8 user staff 272 Dec 1 11:03 .idea -rw-r--r-- 1 user staff 9 Nov 23 17:57 aa.log -rw-r--r-- 1 user staff 1888 Dec 1 13:16 gocom.py
위와 같이 byte 타입으로 리턴이 되며 해당 부분을 string으로 변환하여 수정을 할 수 있습니다.
검색을 했을 때 popen보다 subprocess를 권장하는데 왜 권장하는짙 이유를 몰라서 그냥 사용해도 될듯.. 출력도 위 예제처럼 표준출력이 아니라 b/total 48/n과 같이 변환을 한번 더해야되는 귀찮게 나옴..
subprocess를 사용하는 방법은 http://soooprmx.com/wp/archives/5932에 설명이 되어 있습니다.