모듈 os

 파이썬에 기본으로 포함된 모듈인 os 는 자동화된 프로그램 스크립트를 제작할 때 필요하다. 예를 들어 디렉토리를 바꾸고, 새로 폴더를 만들고, 파일을 복사하거나 삭제하는 일을 하는 작은 프로그램을 제작할 때 사용한다.


몇 가지 것들을 알아보자.

우선 os 모듈을 사용하기 위해 import 해야 한다.

import os

먼저 현재 실행 중인 파이썬의 작업 경로를 바꿔보자. chdir()을 사용한다.

현재 작업 중인 경로를 Document라고 하자. 그 상위 폴더로 올라가려면 ".."을 하면 된다. "."은 현재 폴더, ".."은 상위 폴더를 뜻 한다.

os.chdir('..')

이제 다시 Documents로 돌아가려면?

os.chdir('Documents')

현재 작업 중인 폴더의 정보를 가져오려면 getcwd()를 쓴다. "get current working directory"의 줄임말이다.

os.getcwd()
[1] '/Users/tagg/Documents'

환경 변수를 사용해보자. 운영체제가 실행되면 환경변수를 시스템에 등록한다. 이 변수는 모든 프로그램이 다 함께 공유할 수 있다. 환경변수를 통해 서로 다른 프로그램 간의 정보를 교환할 수 있다. 환경 변수 중 대표적인 것이 PATH다. 실행파일의 경로를 저장한 환경변수다. 이 변수를 파이썬에서 참조하려면 getenv() 를 사용하면 된다.

os.getenv('PATH')

결과는 다음과 같다:

'/Users/tagg/Downloads/google-cloud-sdk/bin:/Users/tagg/opt/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin'

디렉토리의 자원을 보기 위해 os.listdir()을 사용한다. 물론 glob과 같은 상위 차원의 모듈을 사용해서 같은 결과를 얻을 수도 있다.


디렉토리를 만들고 싶다면 os.mkdir() 을 사용하자.

os.mkdir("test_pyr")

현재 디렉토리를 보면 test_pyr이라는 이름의 폴더가 생성된 것을 확인할 수 있다. 폴더가 있는데도 os.mkdir()을 실행하면 에러가 발생한다. 이때의 예외처리자의 이름은 FileExistsError이다. 

파일을 삭제하려면 os.remove()를 사용한다. 되돌릴 수 없기 때문에 신중하게 써야 한다. 폴더를 지우려면 os.rmdir()을 사용한다. 다만, 폴더 안의 내용이 모두 비워져야 한다. 폴더 안의 파일까지 다 지우려면 shutil의 rmtree()를 사용하자. 다른 포스트를 통해 shutil을 소개하겠다.

이외, 파일의 이름을 바꾸는 os.rename()도 유용하다. os.rename('oldfile.txt','newfile.txt')와 같이 사용한다.

지금까지 언급된 os의 함수, 매쏘드, 클래스 등은 다음과 같다.

os.chdir()
os.getcwd()
os.getenv()
os.listdir()
os.mkdir()
os.remove()
os.rmdir()
os.rename()

파일을 정리하기 위해 os를 사용하는 빈도는 대단히 높다. 

이외에도 os는 고급 프로그래밍을 위한 파일 처리기가 포함되어 있다. 





댓글 없음:

댓글 쓰기

PyR Intro - 신입생OT학기제