본문 바로가기
개발/Python

[파이썬, Python] 터미널 명령어 실행하기

by 꾀돌이 개발자 2024. 7. 12.
반응형

 

터미널 명령어 실행하기

 

 

- 터미널에 입력할 명령어를 파이썬 코드로 실행하려면 subprocess 모듈을 사용하면 됩니다.

- subprocess 모듈은 파이썬에서 새로운 프로세스를 생성하고, 그 프로세스와 상호작용할 수 있도록 해줍니다.

 

 

[예제 1]

import subprocess

# 실행할 명령어를 문자열로 지정합니다.
command = "dir"

# 명령어를 subprocess.run() 함수를 사용하여 실행합니다.
result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

# 명령어의 표준 출력과 표준 에러를 확인할 수 있습니다.
print("stdout:", result.stdout)
print("stderr:", result.stderr)
print("Return code:", result.returncode)

 

- import subprocess: subprocess 모듈을 불러옵니다.

  • 이 모듈은 파이썬에서 새로운 프로세스를 생성하고 그 프로세스와 상호작용하기 위한 기능을 제공합니다.

 

- command = "dir": 실행할 명령어를 문자열로 지정합니다.

  • 이 예제에서는 Windows에서 디렉토리의 내용을 나열하는 dir 명령어를 사용하고 있습니다.
  • 만약 Linux나 macOS에서는 동일한 역할을 하는 ls 명령어를 사용할 수 있습니다.

 

- result = subprocess.run(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True): 지정한 명령어를 실행합니다

 

  • command: 실행할 명령어 문자열입니다.
  • shell=True: 명령어를 쉘을 통해 실행하도록 설정합니다. 이 옵션이 없으면 명령어가 실행되지 않을 수 있습니다.
  • stdout=subprocess.PIPE: 명령어의 표준 출력을 파이프에 연결합니다. 이를 통해 파이썬 코드에서 명령어의 출력을 캡처할 수 있습니다.
  • stderr=subprocess.PIPE: 명령어의 표준 에러 출력을 파이프에 연결합니다. 이를 통해 파이썬 코드에서 명령어의 에러 출력을 캡처할 수 있습니다.
  • universal_newlines=True: 출력과 에러를 텍스트 형식으로 처리합니다. 이 옵션이 없으면 바이트 형식으로 처리됩니다.
  • 위 코드는 파이썬 3.6 이하에서 실행됩니다.
  • 파이썬 3.7 부터는 result = subprocess.run(command, shell=True, capture_output=True, text=True)로 실행해야 합니다.

 

- print("stdout:", result.stdout): 명령어의 표준 출력을 확인합니다.

 

- print("stderr:", result.stderr): 명령어의 표준 에러 출력을 확인합니다.

 

- print("Return code:", result.returncode): 명령어의 종료 상태 코드를 확인합니다. 0이면 성공적으로 실행된 것이고, 0이 아니면 에러가 발생한 것입니다.

 

 

반응형