SeouliteLab

[Python/파이썬] Shell 명령어 실행 및 리턴 값 받기 본문

프로그래밍

[Python/파이썬] Shell 명령어 실행 및 리턴 값 받기

Seoulite Lab 2024. 3. 5. 08:18

Python에서는 subprocess 모듈을 사용하여 쉘 명령어를 실행하고 그 결과를 가져올 수 있습니다. 이 모듈은 쉘 환경에서 외부 프로세스를 실행하고 통제하는 데 사용됩니다.

1. 단일 명령어 실행

하나의 명령어를 실행하고 결과를 가져오는 예제입니다. subprocess.run() 함수를 사용하여 쉘 명령어를 실행하고 표준 출력을 반환합니다.

import subprocess

result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)

2. 여러 명령어 실행

여러 명령어를 연결하여 실행하고 결과를 가져오는 예제입니다. 파이프 라인을 사용하여 명령어를 연결하고, subprocess.Popen()을 사용하여 실행합니다.

import subprocess

commands = [
    'echo "Hello, World!"',
    'grep World',
]

p1 = subprocess.Popen(commands[0], stdout=subprocess.PIPE, shell=True)
p2 = subprocess.Popen(commands[1], stdin=p1.stdout, stdout=subprocess.PIPE, shell=True)
p1.stdout.close()  # p1의 출력을 닫아줍니다.
output = p2.communicate()[0]
print(output.decode())

3. Shell 변수 사용

쉘 변수를 사용하여 명령어를 실행하는 예제입니다. subprocess.run() 함수에 shell=True 옵션을 사용하여 쉘 변수를 확장할 수 있습니다.

import subprocess

result = subprocess.run('echo $HOME', capture_output=True, text=True, shell=True)
print(result.stdout)