python 프로그래밍, 쉘 명령 실행이 끝났음을 detect 하기
글쓴이: bong90 / 작성시간: 화, 2014/05/13 - 7:23오전
안녕하세요 python으로 스크립트를 짜는 중인데, 궁금한 사항이 생겨 질문합니다.
제가 원하는 동작은 (스크립트와 같은 path에 있는)소스를 컴파일하고,
그 결과물을 가지고 어떤 동작을 하고, 그 동작의 결과물로 또 다른 동작을 해야합니다.
일단은 세 개의 스크립트 파일로 나누었지만 궁극적으로는 하나의 스크립트 상에서 실행하도록 해야하는데요..
스크립트 상의 각각 다른 동작들이 이전에 실행된 쉘명령의 결과물에 의존하기 때문에, 조금 어려움이 있네요.
궁금한 것이, 스크립트 내에서 쉘 명령을 실행시켰을 때 해당 명령이 완료되어 bash로 리턴되었음을 detect할 수 있는 방법이 있을까요?
적당한 시간을 sleep 할까 생각도 했지만 이 방법은 혹여나 컴파일이 오래걸린다던지 하면 문제가 생기므로 안될것 같고,
뭔가 wait(bash_return == True) 이런 로직이 있으면 하는데.. ㅠ
방법이 있을런지요?
감사합니다.
Forums:
제가 파이썬은 잘 모릅니다만, 웬만한 언어들에서
제가 파이썬은 잘 모릅니다만,
웬만한 언어들에서 외부 프로그램을 실행하는 방법을 가장 간단한 형태로 사용하면
그 외부프로그램을 실행하는 동안은 대기하고 있다가 실행이 끝나야만 다음으로 진행할 텐데요.
굳이 이런 고민을 하실 이유가...
그냥 os.system("쉘 명령") 하는 걸로는 부족하신가요?
좋은 하루 되세요!
답변에 감사드립니다. 그 방식으로 실행하고
답변에 감사드립니다.
그 방식으로 실행하고 있었는데, 저는 단순히 쉘로 명령을 던져주기만 한다고 생각했었거든요..(추측하기로)
말씀하신대로 os.system , subprocess.call 같은 명령어가 쉘 명령 실행이 끝나기를 기다려주는 거라면
그대로 연결해서 사용하면 되겠네요 ^^ 감사합니다.
subprocess 모듈이 찾으시는 것
subprocess 모듈이 찾으시는 것 같습니다.
https://docs.python.org/2/library/subprocess.html
subprocess.call 을 사용하고 있었는데,
subprocess.call 을 사용하고 있었는데, doc에
Wait for command to complete, then return the returncode attribute.
라는 설명이 있군요!
감사합니다.
댓글 달기