파이썬 관련 포스팅 목록
2020.06.29 - [Python/os] - Python split 함수(문자열 자르기)
2020.06.24 - [Python/os] - Python 파일 읽기, 쓰기(FILE I/O)
2021.01.08 - [Python/os] - Python 시스템 환경변수 가져오기(os.environ)
2020.04.29 - [Python/os] - Python For문
2020.07.11 - [Python/json] - Python json 파싱(Json, Parsing, Python)
2020.06.24 - [Python/datetime] - Python 현재 날짜, 시간 구하기
Python os.chdir 함수를 이용한 작업 경로 및 디렉토리 변경
안녕하세요.
오늘은 파이썬의 os 모듈에 포함되어있는 chdir 함수를 사용하는 방법에 대해 알아보겠습니다.
chdir은 말 그대로 change directory 입니다.
즉, 폴더 또는 경로를 변경한다는 의미입니다.
여기서 말하는 폴더란 어떤 폴더를 의미할까요?
파이썬 개발자 페이지에 설명되어있는 내용을 참고해보면 chdir에서 폴더는 작업 폴더를 의미합니다.
"현재 내가 개발하고 있는 파이썬 모듈이 실행되는 경로를 어디로 변경할 것인가?" 이 말을 의미합니다.
일반적으로 우리가 개발한 파이썬 모듈을 실행하기 위해서는 작성한 모듈이 위치한 폴더로 이동해서 command line 또는 visual code 등 여러 도구를 이용하여 모듈을 실행합니다.
자 그러면 제가 파일을 생성하여 파일 내용을 임의의 텍스트 문서를 작성하는 코드를 작성하였다고 생각해봅시다.
os 모듈의 open 등의 함수를 사용하면 파일을 생성할 수 있습니다.
이때 파일의 경로를 입력합니다.
파일의 경로는 "절대 경로", "상대 경로", "현재 경로"로 지정할 수 있습니다.
절대 경로는 "/d/tmp/test.py" 과 같이 제일 왼쪽 경로가 Root 경로 즉, "/" 경로부터 시작하여 경로 전체를 입력하는 것을 의미합니다.
상대 경로는 "/d/tmp/test/../test.py" 과 같이 ".." 을 사용하는 방법입니다.
".."은 마지막으로 가리킨 경로에서 한 단계 위 경로를 가리키는 문구입니다. 즉 이 예제에서는 위 절대 경로 예제와 동일하게 "/d/tmp/test.py" 을 의미하게 됩니다.
마지막으로 "현재 경로"는 단순히 파일명만 입력하였을 때입니다. "test.py" 이라고 입력하면 현재 모듈이 실행되고 있는 경로에 파일을 생성합니다.
이 "현재 경로"를 내가 모듈을 실행하고 있는 경로가 아니라 다른 경로로 수정해주는 역할을 하는 것이 바로 chdir 함수의 기능입니다.
정리하자면 "내가 이 모듈을 실행하고 있는 동안은 모듈이 위치한 경로가 아니라 다른 경로에서 작업들을 수행하겠다"라는 의미가 되겠네요.
이렇게 말로만 설명하면 이해가 어려우니 간단한 예제를 통해 기능을 알아보겠습니다.
함수 구조
os.chdir(path)
함수가 포함된 모듈명
os
함수 이름
chdir(change directory)
인자
path: 바꿀 경로의 문자열
예제 코드 작성
import os
def change_dir(path):
os.chdir(path)
print('경로 변경 전 %s' % os.getcwd())
change_dir('..')
print('경로 변경 후 %s' % os.getcwd())
라인 설명
1: os 모듈을 현재 모듈에 포함시킵니다.
3: "change_dir" 함수를 선언합니다. change_dir 함수의 인자는 바꿀 경로의 문자열입니다.
4: os 모듈의 chdir 함수를 사용하여 작업 경로를 변경합니다.
6: os 모듈의 getcwd 함수를 사용하여 현재 경로명을 가져와 출력합니다.
7: 위 3번에서 정의한 change_dir 함수에 ".." 위 경로를 가리키는 지시자 문자열을 인자로 전달하여 호출합니다.
8: change_dir 함수 호출 후 현재 경로를 출력합니다.
결과
위와 같이 chdir.py 모듈이 위치한 경로는 최초 "F:/heowonseok/blog/python/os" 였으나
change_dir 함수를 호출 후 그 위의 경로인 python 디렉터리로 변경된 것을 알 수 있었습니다.
마지막으로 이 예제에서 중요한 점이 한 가지 있습니다. 위 예제 코드를 한번 실행하고 다시 실행해보면 결과가 아래와 같습니다.
바로 chdir 함수를 이용한 작업 경로 변경은 코드가 실행되는 동안만 유효하다는 것입니다.
코드 실행이 끝나고 다시 실행하면 최초 경로는 다시 os로 변경된 것을 알 수 있었습니다.
마무리
오늘은 os 모듈의 chdir 함수에 대하여 알아보았습니다.
파이썬 코드 작성 중 작업 경로 변경이 필요할 때 사용하는 함수였습니다.
다만, 작업 경로 변경은 코드 실행 중에만 유효하다는 점을 잘 파악하고 사용해야 할 것 같습니다.
관련 글
파이썬 관련 포스팅 목록
2020.06.29 - [Python/os] - Python split 함수(문자열 자르기)
2020.06.24 - [Python/os] - Python 파일 읽기, 쓰기(FILE I/O)
2021.01.08 - [Python/os] - Python 시스템 환경변수 가져오기(os.environ)
2020.04.29 - [Python/os] - Python For문
2020.07.11 - [Python/json] - Python json 파싱(Json, Parsing, Python)