Skip to content

Python:Process

Process 실행과 관련된 설명.

os.system

import os
import sys
os.system ('ls -al | grep "user")

반환형은 명령 실행 결과의 성공 유무를 반환한다.

subprocess

os.system와 같이 실행이 목적일 경우 아래와 같이 subprocess.call을 사용하면 된다.

import subprocess

subprocess.call ('ls -al', shell=True)

출력된 stdout의 결과를 사용할 경우 subprocess.check_output를 사용하면 된다.

import subprocess

result = subprocess.check_output('./program' , shell=True)
if result == 'AAA' :
    print "123"
elif result == 'BBB' :
    print "456"

STDERR는 아래와 같이 획득할 수 있다.

from subprocess import Popen, PIPE, STDOUT

cmd = 'ls /etc/fstab /etc/non-existent-file'
p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
output = p.stdout.read()
print output

Favorite site