ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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에 설명이 되어 있습니다.

    댓글