파이썬
라이브러리
subprocess
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Programming
외부 명령어 실행 라이브러리, subprocess #
subprocess 모듈은 파이썬에서 쉘 명령을 실행할 수 있게 해주는 라이브러리이다. os 모듈의 os.system을 통해서도 실행 가능하지만 subprocess 모듈을 통해 좀 더 많은 기능을 이용할 수 있다.
사용법 #
단순한 서브프로세스 실행만을 원한다면 call 함수를 사용한다. call 함수 사용시 실행된 서브프로세스가 종료되기 기다렸다가 종료되면 결과값을 화면에 출력해준다. 다음은 call 함수에 사용되는 옵션들이다 .
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
call 함수는 아래와 같이 사용할 수 있다.
>>> import subprocess
>>> subprocess.call(["ls", "-al"])
total 8
drwxr-xr-x. 2 root root 4096 10월 8 17:58 .
drwxr-xr-x. 6 root root 4096 10월 8 17:58 ..
0
subprocess 에서 출력되는 결과값을 문자열 데이터로 사용하고 싶은 경우 check_output 함수를 사용한다. 이 함수는 결과값을 문자열 데이터로 리턴해준다.
check_output 함수에 사용되는 옵션은 아래와 같다.
subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False)
아래는 check_output 사용 예제이다.
>>> out = subprocess.check_output (['ls', '-al'] )
>>> out
b'total 8\ndrwxr-xr-x. 2 root root 4096 10\xec\x9b\x94 8 17:58 .\ndrwxr-xr-x. 6 root root 4096 10\xec\x9b\x94 8 17:58 ..\n'
Popen 은 subprocess 모듈에서 사용되는 대부분의 함수 실행에 실질적으로 관여하는 함수이며, 다양한 옵션들을 통해 call, check_output 등 보다 유연하게 사용할 수 있다.
아래는 Popen 함수에서 사용가능한 옵션들이다.
subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
아래는 Popen 함수 사용 예제 이다.
>>> proc = subprocess.Popen(['ls', '-al'], stdout=subprocess.PIPE, stderr=subprocess.PIPE )
>>> out = proc.communicate()
>>> out
(b'total 8\ndrwxr-xr-x. 2 root root 4096 10\xec\x9b\x94 8 17:58 .\ndrwxr-xr-x. 6 root root 4096 10\xec\x9b\x94 8 17:58 ..\n', b'')