본문 바로가기
Python/python

파이썬 os 모듈을 활용한 운영체제와의 상호 작용

by 노마드 산코디 2023. 10. 20.
728x90

안녕하세요. 오늘은 파이썬 os 모듈에 대한 내용을 주제로 글을 써보려고 합니다. 이 모듈은 운영체제와 상호 작용하여 파일 및 디렉터리 관리, 환경 변수 조작, 작업 디렉터리 변경, 시스템 명령 실행 등 다양한 시스템 관리 작업을 수행하는 데 도움이 되는 강력한 도구입니다. 파이썬을 사용하여 시스템 관리 및 파일 조작 작업을 간단하게 자동화하는 방법에 대해 살펴보겠습니다.

 

 

 

 


1. os 모듈이란?

파이썬의 os 모듈은 "Operating System"의 약자로, 운영체제와 상호 작용하여 다양한 시스템 관리 작업을 수행하는 기능을 제공하는 모듈입니다. 이 모듈을 사용하면 파일 및 디렉터리 관리, 환경 변수 조작, 작업 디렉터리 변경, 시스템 명령 실행 등의 작업을 파이썬 코드로 수행할 수 있습니다.


os 모듈의 주요 특징

  • 파일 및 디렉터리 관리
    파일과 디렉터리를 생성, 이동, 이름 변경, 삭제하는 기능을 제공합니다. 또한 현재 디렉터리 확인, 디렉터리 내의 파일 목록 조회 등도 가능합니다.

  • 파일 경로 다루기
    os.path 모듈을 통해 파일 경로를 조작하고, 상대 경로와 절대 경로를 다루며, 경로 분리, 조합, 확장자 추출 등의 작업을 수행할 수 있습니다.


  • 환경 변수 조작
    운영체제의 환경 변수를 설정, 읽기, 삭제하는 기능을 제공합니다. 시스템 환경 변수와 사용자 환경 변수를 다룰 수 있습니다.


  • 작업 디렉터리 관리
    현재 작업 디렉터리를 확인하고 변경하는 기능을 제공합니다. 작업 디렉터리를 변경하여 파일 및 디렉터리 조작을 용이하게 합니다.


  • 시스템 명령 실행
    파이썬에서 외부 프로그램이나 명령을 실행하는 기능을 제공합니다. os.system() 및 subprocess 모듈을 사용하여 외부 명령 실행이 가능합니다.


  • 파일 및 디렉터리 검사
    파일 또는 디렉터리의 존재 여부, 유형, 크기, 수정 시간 등을 확인할 수 있습니다.


  • 파일 및 디렉터리 권한 관리
    파일 및 디렉터리의 권한 설정과 검사를 수행할 수 있습니다.


  • 기타 유용한 기능
    os
     모듈은 다양한 시스템 관리 작업을 지원하는데, 파일 복사, 파일 이동, 디렉터리 트리 순회 등을 포함합니다.



파이썬의 os 모듈은 시스템 관리 및 파일 조작 작업을 자동화하고 간단하게 처리할 수 있는 강력한 도구로, 다양한 시스템 관리 작업을 효율적으로 수행하는 데 도움이 됩니다.









2. os 모듈의 파일 및 디렉터리 관리



1. 디렉터리 생성 (os.mkdir() 및 os.makedirs())

  • 새 디렉터리를 생성할 때 os.mkdir() 함수를 사용합니다.
  • 중첩된 디렉터리도 생성하려면 os.makedirs() 함수를 사용합니다.
import os

# 디렉터리 생성
os.mkdir('new_directory')

# 중첩된 디렉터리 생성
os.makedirs('parent/child/grandchild')

 


2. 디렉터리 삭제 (os.rmdir() 및 os.removedirs())

  • 디렉터리를 삭제할 때 os.rmdir() 함수를 사용합니다.
  • 중첩된 디렉터리도 삭제하려면 os.removedirs() 함수를 사용합니다.
import os

# 디렉터리 삭제
os.rmdir('directory_to_delete')

# 중첩된 디렉터리 삭제
os.removedirs('parent/child/grandchild')




3. 파일 삭제 (os.remove())

  • 파일을 삭제할 때 os.remove() 함수를 사용합니다.
import os

# 파일 삭제
os.remove('file_to_delete.txt')




4. 파일 또는 디렉터리 이름 변경 (os.rename())

  • 파일 또는 디렉터리의 이름을 변경할 때 os.rename() 함수를 사용합니다.
import os

# 파일 또는 디렉터리 이름 변경
os.rename('old_name.txt', 'new_name.txt')




5. 현재 디렉터리 확인 (os.getcwd())

  • 현재 작업 중인 디렉터리의 경로를 확인할 때 os.getcwd() 함수를 사용합니다.
import os

# 현재 디렉터리 확인
current_directory = os.getcwd()




6. 디렉터리 내의 파일 목록 조회 (os.listdir())

  • 특정 디렉터리 내에 있는 파일 및 서브디렉터리 목록을 조회할 때 os.listdir() 함수를 사용합니다.
import os

# 디렉터리 내의 파일 목록 조회
file_list = os.listdir('directory_path')




7. 파일 또는 디렉터리 존재 여부 확인 (os.path.exists())

  • 파일 또는 디렉터리가 존재하는지 확인할 때 os.path.exists() 함수를 사용합니다.
import os

# 파일 또는 디렉터리 존재 여부 확인
if os.path.exists('file_or_directory_path'):
    print('존재합니다.')
else:
    print('존재하지 않습니다.')




8. 파일 또는 디렉터리 유형 확인 (os.path.isfile() 및 os.path.isdir())

  • 파일 또는 디렉터리의 유형을 확인할 때 os.path.isfile() 및 os.path.isdir() 함수를 사용합니다.
import os

# 파일 여부 확인
if os.path.isfile('file_path'):
    print('파일입니다.')

# 디렉터리 여부 확인
if os.path.isdir('directory_path'):
    print('디렉터리입니다.')




위와 같이 기본적인 os 모듈 함수를 사용하여 파일 및 디렉터리를 생성, 삭제, 이름 변경 등의 작업을 파이썬 코드로 수행할 수 있습니다.







3. os 모듈의 환경 변수



1. 환경 변수 읽기 (os.environ 및 os.getenv())

  • os.environ은 현재 시스템의 모든 환경 변수를 딕셔너리 형태로 반환합니다.
  • 특정 환경 변수의 값을 얻으려면 os.getenv() 함수를 사용합니다.
import os

# 모든 환경 변수 읽기
all_env_vars = os.environ

# 특정 환경 변수 값 읽기
username = os.getenv('USERNAME')




2. 환경 변수 설정 및 수정 (os.environ 및 os.putenv())

  • os.environ을 사용하여 환경 변수를 설정 및 수정할 수 있습니다.
  • os.putenv() 함수를 사용하여 환경 변수를 설정할 수도 있습니다.
import os

# 환경 변수 설정 및 수정
os.environ['MY_VARIABLE'] = 'my_value'

# os.putenv()를 사용한 환경 변수 설정
os.putenv('MY_VARIABLE', 'my_value')




3. 환경 변수 삭제 (os.environ.pop())

  • os.environ.pop() 메서드를 사용하여 환경 변수를 삭제할 수 있습니다.
import os

# 환경 변수 삭제
os.environ.pop('MY_VARIABLE')




4. 환경 변수 유무 확인 (os.environ.get() 또는 os.getenv())

  • 특정 환경 변수가 존재하는지 확인하려면 os.environ.get() 또는 os.getenv() 함수를 사용합니다.
import os

# 환경 변수 유무 확인
if 'MY_VARIABLE' in os.environ:
    print('환경 변수가 존재합니다.')

# 또는
if os.getenv('MY_VARIABLE') is not None:
    print('환경 변수가 존재합니다.')




환경 변수는 시스템 설정 및 사용자 환경에 관한 정보를 저장하는 데 중요하며, 파이썬의 os 모듈을 사용하여 이러한 환경 변수를 조작할 수 있습니다.

 








4. os 모듈 사용시 주의사항



1. 플랫폼 호환성 확인
os 모듈은 운영체제에 따라 동작 방식이 다를 수 있습니다. 따라서 코드를 작성할 때 특정 운영체제에 종속적인 기능을 사용하지 않도록 주의해야 합니다. 가능한 경우 운영체제에 독립적인 방식으로 코드를 작성하는 것이 좋습니다.


2. 파일 경로 분리 문자 사용
파일 경로를 조작할 때 백슬래시(\)와 슬래시(/) 등의 경로 분리 문자를 사용하는데, 이 분리 문자도 운영체제에 따라 다를 수 있습니다. os.path.join() 함수를 사용하면 운영체제에 맞는 분리 문자를 자동으로 생성해 줍니다.

import os

# 경로 조합에는 os.path.join() 사용
path = os.path.join('directory', 'file.txt')

 

3. 파일 및 디렉터리 유효성 검사
os 모듈을 사용하여 파일 또는 디렉터리를 조작하기 전에 항상 유효성을 검사해야 합니다. 파일이나 디렉터리가 존재하는지, 권한이 있는지 등을 확인하는 것이 중요합니다.


4. 예외 처리
파일 또는 디렉터리 조작 중 오류가 발생할 수 있으므로 예외 처리를 통해 코드를 안전하게 관리해야 합니다. try와 except 블록을 사용하여 예외 처리를 구현하는 것이 좋습니다.

import os

try:
    # 파일 또는 디렉터리 조작 코드
except OSError as e:
    print(f"오류 발생: {e}")



5. 파일 핸들 관리
파일을 열었을 때는 항상 적절하게 닫아야 합니다. with 문을 사용하여 파일 핸들 관리를 자동화할 수 있습니다.

with open('file.txt', 'r') as file:
    # 파일 조작 코드
# 이 시점에서 파일 자동으로 닫힘



6. 파일 백업
파일 조작 중 데이터 손실을 방지하기 위해 중요한 파일을 수정하기 전에 백업을 만드는 것이 좋습니다.



7. 파일 및 디렉터리 삭제 주의
파일 또는 디렉터리를 삭제할 때는 신중하게 처리해야 합니다. 삭제 시 데이터 복구가 불가능할 수 있으므로 실수를 방지하기 위해 조심하고 백업을 만들어 두는 것이 좋습니다.



os 모듈은 파일 시스템 조작을 지원하는 강력한 도구이지만, 주의하여 사용해야 오류나 데이터 손실을 예방할 수 있습니다.









최종 정리

오늘은 파이썬 os 모듈에 대한 기본적인 내용을 주제로 정리해 보았습니다. 파일 시스템 관련 작업을 효율적으로 수행하기 위해 os 모듈을 활용할 수 있으며, 플랫폼 호환성, 경로 관리, 유효성 검사, 예외 처리, 파일 핸들 관리, 백업, 파일 삭제 등 다양한 측면에서 주의해야 할 점을 고려해야 합니다. 이러한 지식을 바탕으로 파일 시스템 관련 작업을 더욱 안전하고 효율적으로 수행할 수 있을 것입니다. 

감사합니다.

 

 

 

728x90
반응형