python

sys, os.path.join, os.path.dirname, __file__

Einsicht 2021. 2. 15. 12:32

1. python sys 모듈

sys모듈은 파이썬을 설치할 때 함께 설치되는 라이브러리다. 

sys로 파이썬 라이브러리가 설치된 디렉토리 경로를 확인할 수 있다.

 

1) sys.path

파이썬 라이브러리가 설치되어 있는 디렉토리를 리턴한다.

>>> import sys
>>> sys.path
['', '/Users/hi/miniconda3/envs/koodon/lib/python38.zip', 
'/Users/hi/miniconda3/envs/koodon/lib/python3.8', 
'/Users/hi/miniconda3/envs/koodon/lib/python3.8/lib-dynload', 
'/Users/hi/miniconda3/envs/koodon/lib/python3.8/site-packages']

 

2) sys.path.append(path)

라이브러리 설치 경로를 추가한다.

새로 추가한 경로에서 Import해서 쓸 수 있게 된다.

>>> sys.path.append("/Users/hi/data_structure/")
>>> sys.path
['', '/Users/hi/miniconda3/envs/koodon/lib/python38.zip', 
'/Users/hi/miniconda3/envs/koodon/lib/python3.8', 
'/Users/hi/miniconda3/envs/koodon/lib/python3.8/lib-dynload', 
'/Users/hi/miniconda3/envs/koodon/lib/python3.8/site-packages',
'/Users/hi/data_structure/']

위 코드를 보면 마지막에 /Users/hi/data_structure/가 추가된 것을 볼 수 있다.

만약 data_structure에 어떤 a라는 모듈이 있다면 이제, import a 라는 명령어로 이를 불러다 쓸 수 있다.

2. python os 모듈

os: 파이썬에 디렉토리와 파일 경로에 관한 작업을 할 땐  os모듈 사용한다.

1) os.getcwd() /  os.chdir

- os.getcwd(): 현재 작업 디렉토리 위치 리턴

-os.chdir("path"): path로 디렉토리 변경

>>> import os
>>> os.getcwd()
'/Users/hi/my_project'
>>> os.chdir('/Users')
>>> os.getcwd()
'/Users'

2) os.path.abspath(path)

특정 경로의 절대 경로 리턴

예시: data_structure 디렉토리의 절대경로 파악하기

>>> import os
>>> os.path.abspath("data_structure")
'/Users/hi/my_project/data_structure'

3) os.path.basename(path)

path에서 파일 이름만 리턴

>>> import os
>>> os.path.basename("data_structure")
'data_structure'

4) os.path.split(path)

'디렉토리 명'과 '파일 명'을 튜플 형태로 리턴

예시: data_structure 폴더 안에 test.py라는 파일이 있는 상태.

>>> import os
>>> os.path.split("data_structure/test.py")
('data_structure', 'test.py')

5) os.path.sep

경로 하나 하나를 split해서 list로 리턴

예시: 현재 my_project라는 디렉토리에 머물고 있음.

>>> import os
>>> os.getcwd()
'/Users/hi/my_project'
>>> os.getcwd().split(os.path.sep)
['', 'Users', 'hi', 'my_project']

6) os.path.join(path1, path2, path3, ....)

경로들을 서로 합쳐 새로운 경로를 만든다.

>>> import os
>>> os.path.join(os.getcwd(), "new_path1", "new_path2", "new_path3")
'/Users/hi/my_project/new_path1/new_path2/new_path3'

7) os.listdir(path)

path의 하위 파일, 디렉토리 들을 list 형태로 리턴한다.

예시: data_structure 디렉토리 안에는 test.py파일과 algorithm폴더가 존재함.

>>> import os
>>> os.listdir("data_structure")
['test.py', 'algorithm']

 

8). os.path.exists(path) / os.path.isdir(path) / os.path.isfile(path)

os.path.exists는 file or dir이 실제 존재 하는지 boolean값을 리턴한다.

isdir은 디렉토리만, isfile은 파일만 검사해서 boolean을 리턴한다.

 

예시: 내 컴퓨터에 hi라는 폴더 또는 디렉토리는 존재하지 않는다.

>>> import os
>>> os.path.exists("hi")
False

 

9) os.path.getsize(path)

파일의 크기를 리턴한다.

>>> import os
>>> os.path.getsize("data_structure")
128

 

3. __file__

__file__은 현재 파일의 path를 리턴한다.

 

 

 

참고한 자료:
itmining.tistory.com/122

 

[Python] 파이썬 파일과 디렉토리 경로

서론 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) 조만간 포스팅 할 예정인 파이썬을 이용한 웹 크롤링, 스크래핑 주제를 공부하던 중 막히는 부분이 생겼습니다. 바로 위의 구문입니다. 이를 이해

itmining.tistory.com

devpouch.tistory.com/28

 

[Python] 파이썬 에서 __file__의 의미

Python에서 __file__의 의미 Python 코드를 보다보면 __file__이라고 적힌 부분이 있는데, 이는 현재 수행중인 코드를 담고 있는 파일의 위치한 Path를 알려준다. pytest.py가 C:/Users/test에 위치해 있고, 아래.

devpouch.tistory.com

wikidocs.net/29