반응형
python subprocess
간단하게 shell (cli) 로 되어있는 기능들을 호출하여 써야할 때가 있다.
그럴때는, 해당 파이썬 모듈을 설치하고 사용하는것 보다는 subprocess 모듈을 사용하는것이 속편하다.
간단예제
subprocess 를 간단하기 wrapping 하여 사용하면 편하다.
#!/usr/bin/python
import sys
import os
import subprocess
def run_sub_process(cmd, redirect_stdio=True):
if redirect_stdio == True:
ps = subprocess.Popen('%s'%(cmd), shell=True,stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
else:
ps = subprocess.Popen('%s'%(cmd), shell=True,universal_newlines=True)
out, err = ps.communicate()
res = {}
res['return_code'] = ps.returncode
if out is not None :
res['stdouts'] = out
if err is not None :
res['stderrs'] = err
return res
- 코딩설명
redirect_stdio
:subprocess()
호출시 stdio / stderr 를 함수에서 리턴받을지 사용하는 옵션이다.
사용예
sub_process_ret = run_sub_process('ls -al')
if sub_process_ret['return_code'] == 0 :
print('process succcess~')
print('results -----')
print(sub_process_ret['stdouts'])
stdio / stderr 를 갖고오는 방법들이 많지만... 위의 방법이 가장간단하고 잘동작하는것같다.
...
- 해당 포스팅은 tistory-posting-cli 를 이용해 발행되었습니다.
반응형