목차
1. subprocess 모듈이란?
subprocess 모듈은 파이썬에서 외부 프로세스를 실행하고 상호작용하는 데 사용되는 표준 라이브러리입니다.
이 모듈을 통해 쉘 명령을 실행하고 결과를 얻을 수 있으며, 다른 프로세스와 표준 입출력 스트림을 통해 통신할 수 있습니다.
2. 외부 프로세스 실행 예제
외부 프로세스를 실행하는 가장 기본적인 예제입니다.
'ls /tmp' 명령어를 실행하여 tmp 디렉토리의 파일 목록을 출력합니다.
import subprocess
command = "ls /tmp"
result = subprocess.run(command, shell=True, capture_output=True, text=True)
print(result.stdout)
3. 실행 결과 출력 예제
subprocess를 사용하여 외부 프로세스를 실행하고 실행 결과를 출력하는 예제입니다.
'echo' 명령어를 사용하여 텍스트를 출력합니다.
import subprocess
command = "echo 'Hello, subprocess module!'"
result = subprocess.run(command, shell=True, capture_output=True, text=True)
print(result.stdout)
4. 명령어 인자 전달 예제
명령어 실행 시 인자를 전달하는 방법을 보여주는 예제입니다. 'echo' 명령어를 사용하여 파일에 텍스트를 쓰는 방법을 보여줍니다.
import subprocess
filename = "/tmp/example222.txt"
text = "This is an example text."
command = f"echo '{text}' > {filename}"
result = subprocess.run(command, shell=True, capture_output=True, text=True)
print(result.stdout)
5. stdio(표준입력)에 입력 전달 예제
표준 입력을 통해 외부 프로세스에 데이터를 전달하는 방법을 보여주는 예제입니다.
'grep' 명령어를 사용하여 텍스트에서 "Python"이 포함된 줄을 찾습니다.
import subprocess
command = "grep Python"
text = """Python is an amazing language.
It is widely used for various purposes.
Learn Python and explore its possibilities."""
result = subprocess.run(command, shell=True, input=text, capture_output=True, text=True)
print(result.stdout)
위의 예제 코드들은 파이썬에서 subprocess 모듈을 사용하여 쉘 명령을 실행하는 방법들을 보여줍니다.
이를 통해 다른 프로그램이나 명령어를 파이썬 스크립트 안에서 실행하고 그 결과를 가져올 수 있습니다.
반드시 주의해야 할 점은 외부 명령어를 실행할 때 보안 취약점이 발생할 수 있으므로, 사용자로부터 입력받은 명령어를 신중하게 다루거나 신뢰할 수 있는 소스에서만 실행해야 합니다.
반응형