sys, os.path.join, os.path.dirname, __file__
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
[Python] 파이썬 에서 __file__의 의미
Python에서 __file__의 의미 Python 코드를 보다보면 __file__이라고 적힌 부분이 있는데, 이는 현재 수행중인 코드를 담고 있는 파일의 위치한 Path를 알려준다. pytest.py가 C:/Users/test에 위치해 있고, 아래.
devpouch.tistory.com