관리 메뉴

개발자비행일지

파이썬 OS 모듈, 디렉토리 위치 얻기 본문

▶ Python

파이썬 OS 모듈, 디렉토리 위치 얻기

Cyber0946 2020. 7. 15. 19:19

아듀파일럿 분석중 autotest 수행 스크립트에서 os.path.dirname()을 사용하는 것을 확인하고 관련 내용을 학습차원에서정리한다.  

파이썬에서 파일의 위치 및 현재 디렉토리의 위치를 구하는 방법은 크게  realpath(), abspath(), getcwd() 등이 있다. 

이 함수들은 os.py 모듈에 존재한다. 

파일 이름, 파일 경로 

만약 현재 디렉토리에 tesy.py로 스크립트를 생성하고, 아래의 예제 코드를 실행하면 파일의 이름과 경로가 출력된다. 

여기서 realpath()는 심볼ㄹ기 링크 등의 실제 경로를 찾아주며, abspath는 절대 경로를 리턴한다. 

import os
print(__file__)
print(os.path.realpath(__file__))
print(os.path.abspath(__file__))

출력은 다음과 같다.

 

현재 파일의 디렉토리(폴더) 경로

아래 코드들은 파일이 있는 폴더의 경로를 구하는 2가지 방법이다. os.getcwd()는 현재 작업중인 폴더 경로를 리턴한다. 

os.path.dirname()은 현재 파일의 폴더 경로를 리턴한다. 즉 대상이 파일이냐, 아니면 작업공간이냐가 차이점이다. 

import os
print(os.getcwd())
print(os.path.dirname(os.path.realpath(__file__)))

출력은 당음과 같다. 

현재 디렉토리에 있는 파일 리스트

현재 디렉토리에 어떤 파일이 있는지 알기 위해서는 listdir()을 사용한다. 리눅스의 ls와 같은 역할을 수행한다.

import os
print(os.listdir(os.getcwd()))

 작업 경로 변경

chdir()은 작업중인 경로를 변경해 준다. 

import os
print("before: %s"%os.getcwd())
os.chdir("/home/js/test/")
print("after: %s"%os.getcwd())