Skip to content

파이썬 라이브러리 subprocess #

Find similar titles

9회 업데이트 됨.

Edit
  • 최초 작성자
    둥굴레씨
  • 최근 업데이트
    hspark

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'')

Suggested Pages #

0.0.1_20230725_7_v68