파이썬의 os 라이브러리는 운영 체제와 상호 작용하는 기능을 제공합니다. 파일 및 디렉토리 관리, 시스템 명령 실행, 환경 변수 조작 등 다양한 작업을 코드를 통해 손쉽게 수행할 수 있습니다.
목차
- 파이썬 OS 라이브러리 소개
- 기본적인 OS 모듈 함수
- 파일 및 디렉토리 관리
- 파일 및 디렉토리 정보 얻기
- 시스템 명령어 및 환경 변수
- 경로 관련 함수
- 파일 I/O 및 작업
- 기타 유용한 함수들
- 실전 예제 및 응용
- 주의사항 및 팁
1. 파이썬 OS 라이브러리 소개
파이썬의 os
라이브러리는 운영 체제와 상호작용하는 다양한 기능을 제공합니다. 이를 통해 파일 및 디렉토리 관리, 시스템 명령어 실행, 경로 관련 작업 등의 기능을 파이썬 코드로 손쉽게 처리할 수 있습니다.
OS 라이브러리의 목적 및 용도
os
라이브러리의 주요 목적은 프로그래밍 언어 수준에서 운영 체제의 기능에 접근하도록 도와주는 것입니다. 이를 통해 파일 생성, 수정, 삭제, 디렉토리 작업, 환경 변수 관리 등의 작업을 수행할 수 있습니다.
설치 및 환경 설정
os
모듈은 파이썬의 표준 라이브러리에 포함되어 있으므로 추가적인 설치가 필요하지 않습니다. import os
문을 사용하여 간단하게 가져올 수 있습니다.
import os
2. 기본적인 OS 모듈 함수
OS 모듈은 다양한 함수를 제공하며, 그 중 몇 가지 기본적인 함수를 살펴보겠습니다.
os.name: 운영 체제의 이름
os.name
함수는 현재 실행되고 있는 운영 체제의 이름을 반환합니다. 주로 'posix', 'nt' 등의 값을 가질 수 있습니다.
print(os.name) # 'posix' 또는 'nt' 등 출력
os.getcwd(): 현재 작업 디렉토리 가져오기
현재 작업 디렉토리를 반환하는 함수입니다. 이는 프로그램이 현재 어디에 위치하고 있는지 알아내는 데 유용합니다.
current_directory = os.getcwd()
print(current_directory)
os.chdir(): 작업 디렉토리 변경하기
os.chdir()
함수는 작업 디렉토리를 변경하는 함수입니다. 이를 사용하여 프로그램의 작업 경로를 다른 위치로 이동할 수 있습니다.
os.chdir('/path/to/directory')
3. 파일 및 디렉토리 관리
파일 및 디렉토리를 관리하는 작업은 os
라이브러리의 주요 기능 중 하나입니다.
os.makedirs(): 디렉토리 생성하기
존재하지 않는 디렉토리를 생성할 때 사용하는 함수입니다.
os.makedirs('new_directory')
os.rmdir(): 디렉토리 삭제하기
빈 디렉토리를 삭제할 때 사용합니다.
os.rmdir('directory_to_remove')
os.remove(): 파일 삭제하기
특정 파일을 삭제할 때 사용하는 함수입니다.
os.remove('file_to_remove.txt')
os.rename(): 파일 및 디렉토리 이름 변경하기
파일 또는 디렉토리의 이름을 변경할 때 사용하는 함수입니다.
os.rename('old_name.txt', 'new_name.txt')
4. 파일 및 디렉토리 정보 얻기
파이썬의 os
라이브러리는 파일 및 디렉토리의 정보를 손쉽게 얻을 수 있는 기능도 제공합니다.
os.stat(): 파일의 속성 가져오기
os.stat()
함수는 파일의 다양한 속성, 예를 들면 크기, 수정 시간 등을 반환합니다.
file_info = os.stat('example.txt')
print(file_info.st_size) # 파일 크기 출력
os.listdir(): 디렉토리 내의 파일 및 서브 디렉토리 리스트
현재 디렉토리 또는 지정된 디렉토리 내의 파일과 서브 디렉토리 목록을 반환합니다.
directory_content = os.listdir('.')
print(directory_content)
5. 시스템 명령어 및 환경 변수
os
라이브러리를 이용하면 시스템 명령어의 실행 및 환경 변수의 관리도 가능합니다.
os.system(): 시스템 명령어 실행하기
OS의 시스템 명령어를 직접 실행할 수 있습니다.
os.system('echo Hello World')
os.environ: 환경 변수 정보
os.environ
은 현재 환경 변수의 딕셔너리를 제공합니다.
print(os.environ['PATH'])
os.getenv() 및 os.putenv(): 환경 변수값 가져오기 및 설정하기
환경 변수의 값을 가져오거나 설정할 때 사용됩니다.
# 값을 가져옴
path_value = os.getenv('PATH')
# 값을 설정
os.putenv('MY_VARIABLE', 'value')
6. 경로 관련 함수
파일 및 디렉토리의 경로와 관련된 다양한 작업을 지원합니다.
os.path.join(): 경로 결합하기
두 개 이상의 경로 구성 요소를 안전하게 결합할 수 있습니다.
full_path = os.path.join('/home', 'user', 'documents', 'file.txt')
print(full_path)
os.path.split() 및 os.path.exists(): 경로 분리 및 경로의 존재 확인하기
경로를 디렉토리와 파일로 분리하거나, 경로의 존재를 확인할 수 있습니다.
directory, filename = os.path.split(full_path)
print(directory, filename)
# 경로의 존재 확인
print(os.path.exists('/home/user/documents'))
os.path.isdir() 및 os.path.isfile(): 디렉토리 및 파일 여부 확인하기
특정 경로가 디렉토리인지, 파일인지를 확인하는 함수입니다.
print(os.path.isdir('/home/user'))
print(os.path.isfile(full_path))
7. 파일 I/O 및 작업
os
라이브러리는 파일 입출력 작업에 대한 낮은 수준의 함수도 제공합니다.
os.open(), os.read(), os.write(), os.close() : 기본적인 파일 작업
이들 함수를 통해 파일을 열고, 읽고, 쓰고, 닫는 기본 작업을 수행할 수 있습니다.
fd = os.open("example.txt", os.O_RDWR)
content = os.read(fd, 15)
os.write(fd, b'Hello, World!')
os.close(fd)
os.pipe() : 파이프 사용하기
os.pipe()
함수는 파이프를 생성하여 프로세스 간의 통신을 가능하게 합니다.
read_fd, write_fd = os.pipe()
os.write(write_fd, b'pipe data')
data = os.read(read_fd, 1024)
print(data)
8. 기타 유용한 함수들
os
라이브러리에는 파일 및 디렉토리 관련된 다양한 유틸리티 함수들이 포함되어 있습니다.
os.walk() : 디렉토리 트리 걸어 다니기
os.walk()
함수는 디렉토리 트리를 위에서 아래로 또는 아래서 위로 걸어 다닐 수 있게 해줍니다.
for dirpath, dirnames, filenames in os.walk('.'):
print(f"Current directory: {dirpath}")
for file in filenames:
print(file)
os.spawn*() 및 os.kill() : 자식 프로세스 시작 및 종료하기
os.spawn*()
함수들은 새로운 프로세스를 시작하는 데 사용되며, os.kill()
은 프로세스를 종료합니다.
# pid = os.spawnl(os.P_DETACH, 'path/to/program', 'arg1', 'arg2')
# os.kill(pid, signal.SIGTERM)
9. 실전 예제 및 응용
파이썬의 os
라이브러리를 활용하면 파일 및 디렉토리 관리 작업을 자동화하는 스크립트를 간편하게 작성할 수 있습니다. 예를 들어, 특정 확장자를 가진 파일만을 찾아서 백업 디렉토리로 복사하는 작업을 수행하는 스크립트를 작성할 수 있습니다.
10. 주의사항 및 팁
os
라이브러리를 사용할 때는 특히 파일 삭제 또는 시스템 명령어 실행과 같은 민감한 작업을 수행할 때 주의해야 합니다. 항상 코드를 실행하기 전에 테스트를 수행하고, 가능한 한 예외 처리를 포함시키는 것이 좋습니다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
초보자를 위한 파이썬 사용 팁 (0) | 2023.10.02 |
---|---|
파이썬을 활용한 GUI 개발: 라이브러리 선택 가이드 (1) | 2023.10.02 |
[파이썬]Pandas에서 DataFrame의 행과 열 삭제하기 (0) | 2023.09.25 |
Visual Studio Code 기본 단축키 모음 (1) | 2023.08.27 |
Visual Studio Code에서 익혀두면 유용한 파이썬 단축키 (0) | 2023.08.27 |
최근댓글