Subprocess 모듈
Subprocess모듈은 파이썬에서 서브 프로세스를 생성할때 사용하는 모듈입니다. 즉 파이썬 프로그램에서 새로운 프로그램을 실행할수 있도록 하는 모듈입니다. 이 모듈은 (os.system, os.spawn*)등을 대체하기 위해서 만들어 졌습니다.
사용방법-
서브 프로세스를 만들기 위해서는 편의 함수들을 사용하거나 세부적인 제어를 위해 Popen 인터페이스를 직접사용하기도 합니다.
subprocess.call 함수 - 간단한 서브 프로세스 실행을 위해 사용됩니다.
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None)
args - 명령행에 문자열 혹은 입력될 인자들을 공백으로 자른 리스트 즉, 명령어를 인자로 주면 된다
stdin,stdout,stderr - 각각 표준 입력, 표준 출력, 표준 에러로서 표준입출력 리다이렉션에 대응합니다. 보통은 생략합니다.
shell-서브 쉘을 실행할 것인지 안할것인지를 결정합니다.
timeout-서브프로세스의 대기시간을 정해줍니다.
ex ) subprocess.call(["ls","-l"]) -> 파일목록이 출력된다.
subprocess.check_call - 결과값 체크하기
subprocess.call()함수가 정상적으로 실행되고 종료되면 0을 리턴하여 준다. 하지만 비정상적으로 종료되었을때는 0이아닌 다른수이고 예외처리를 해줄때 사용
subprocess.check_output - 출력되는 문자열이 필요할때
서브프로세스를 실행하고 그 출력 문자열을 리턴합니다. 따라서 정상적으로 실행되고 정상적으로 종료되었는지를 알고 싶은것이 아니라 출력된 결과를 문자열로 반환합니다.
Popen 클래스 - 프로세스 생성과 관리모듈은 Popen 클래스를 통해서 관리하며 제공되는 편의 함수들만으로 다룰 수 없는 케이스를 커버 할 때, 세밀한 옵션들에 대해서 직접 제어하고자 할 때 사용할 수 있다.
class subprocess.Popen(args, bufsize=-1, excutable=None,stdin=None,stdout=None, stderr=None, preexec_fn=None, close_fds=None, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0, restoreflags=0, restore_signals=True, start_new_session=False, pass_fds=())
'python' 카테고리의 다른 글
내 맘대로 쓰는 파이썬1 (0) | 2018.09.01 |
---|