반응형
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
반응형
'스크립트' 카테고리의 다른 글
[python] distro 모듈을 사용하여 운영체제 정보 확인 예제 (0) | 2024.05.13 |
---|---|
[python] 아파치 웹 서버를 시작하고 중지하는 스크립트 (0) | 2024.05.10 |
SSH 공개 키를 복사하는 스크립트 (0) | 2024.02.05 |
ICMP Ping 테스트를 수행하는 Python 스크립트 (0) | 2024.01.14 |
쉘 스크립트에서 환경 변수를 설정하는 여러 가지 방법 (0) | 2023.11.20 |