파이썬에 기본으로 포함된 모듈인 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을 소개하겠다.
댓글 없음:
댓글 쓰기