본문 바로가기

스크립트

os 모듈과 subprocess 모듈의 차이점

반응형

os 모듈과 subprocess 모듈의 차이점

os 모듈과 subprocess 모듈은 각각 다음과 같은 목적으로 사용됩니다.

os 모듈

  • 파일 및 디렉토리 관리를 위한 함수를 제공합니다.
  • 운영 체제와 상호 작용하기 위한 함수를 제공합니다.
  • 파일 경로 조작, 디렉토리 생성 및 삭제, 파일 및 디렉토리 목록 가져오기 등의 작업을 처리합니다.

os 모듈의 프로세스 매개 변수

  • os.getcwd() : 현재 작업 디렉토리를 반환합니다.
  • os.chdir(path) : 작업 디렉토리를 변경합니다.
  • os.listdir(path) : 지정된 경로의 파일 및 디렉토리 목록을 반환합니다.
  • os.mkdir(path) : 새 디렉토리를 만듭니다.
  • os.makedirs(path) : 중간 경로의 디렉토리를 생성하면서 디렉토리를 만듭니다.
  • os.remove(path) : 파일을 삭제합니다.
  • os.rmdir(path) : 디렉토리를 삭제합니다.
  • os.rename(src, dst) : 파일 또는 디렉토리의 이름을 변경합니다.
  • os.path.exists(path) : 주어진 경로가 존재하는지 확인합니다.
  • os.path.join(path1, path2, ...) : 경로 구성 요소를 결합하여 새 경로를 생성합니다.

예를 들어, 현재 작업 디렉토리를 확인하고, 새로운 디렉토리를 생성하거나 파일을 이동하는 등의 작업을 수행할 때 사용됩니다.

import os

# 현재 작업 디렉토리 확인
current_directory = os.getcwd()
print("Current working directory:", current_directory)

# 새로운 디렉토리 생성
new_directory = os.path.join(current_directory, "new_directory")
os.mkdir(new_directory)

subprocess 모듈

  • 외부 프로세스를 실행하고 상호 작용하기 위한 함수를 제공합니다.
  • 다른 프로그램이나 명령어를 실행하고, 그 결과를 가져오거나 처리할 수 있습니다.
  • 특히, 쉘 명령어를 실행하고 결과를 확인할 때 유용합니다.

subprocess 모듈의 프로세스 매개 변수

  • subprocess.run(args, **kwargs) : 주어진 명령을 실행합니다.
  • subprocess.Popen(args, **kwargs) : 새로운 프로세스를 시작하고 입출력 파이프를 반환합니다.
  • subprocess.check_output(args, **kwargs) : 명령을 실행하고 결과를 반환합니다.
  • subprocess.call(args, **kwargs) : 명령을 실행하고 종료 코드를 반환합니다.
  • subprocess.getstatusoutput(cmd) : 쉘 명령어를 실행하고 반환 코드와 결과를 반환합니다.
  • subprocess.check_call(args, **kwargs) : 명령을 실행하고 종료 코드를 확인합니다.
  • subprocess.check_output(args, **kwargs) : 명령을 실행하고 결과를 반환합니다.
  • subprocess.Popen.communicate(input=None, timeout=None) : 프로세스와 통신합니다.(stdin, stdout 및 stderr와 통신).
  • subprocess.Popen.terminate() : 프로세스를 종료합니다.

예를 들어, 외부 명령어를 실행하고 그 결과를 가져와야 할 때 사용됩니다.

import subprocess

# ls 명령어 실행하여 디렉토리 목록 가져오기
directory_list = subprocess.check_output(['ls'], universal_newlines=True)
print("Directory list:", directory_list)

 

os 모듈은 주로 파일 시스템 및 운영 체제와 관련된 작업을 처리하는 데 사용되고, subprocess 모듈은 외부 프로세스를 실행하고 그 결과를 가져오는 데 사용됩니다.

 

참고URL

- Python Documentation : os — 기타 운영 체제 인터페이스

- Python Documentation : subprocess — 서브 프로세스 관리

 

728x90
반응형