자원의 종류에 따라 경로를 지정하는 방법이 달라진다.
절대 경로와 상대경로는 위치의 시작점을 고정하느냐에 따라 달라진다.
절대 경로는 시작경로가 Root Path로 고정되어있다면, 상대경로는 시작점이 현재 작업 경로를 기준으로 달라진다.
즉!! Root Path로 시작하면(c:\
, d:\
등으로 시작하면) 절대경로
.\
으로 시작하거나 생략한다면 상대경로이다.
c:
, d:
/
.
: 현재 디렉토리..
: 상위 디렉토리/
: 경로 구분자, 상위경로/하위경로예: .(나에서 시작,현재 디렉토리 안에 있다)\..(외부, 상위디렉토리)\..(상위)\..(상위)\classes\01_python/c.py
.\test
= 'test'
#현재 디렉토리는 생략가능os.getcwd()
os.path.isfile(path) /os.path.isdir(path)
1) os.getcwd()
import os #os는 운영체제와 관련된 모듈
os.getcwd() # getcwd() - 현재 디렉토리(current working derectory) 조회
2) os.path.isfile(path) /os.path.isdir(path)
- 주어진 경로가 파일/디렉토리 인지 확인하는 함수
f_path = "./claculater.py"
# 파일이 있는지 여부 조회
os.path.isfile(f_path) #f_path에 파일이 있는지 여부를 bool타입으로 반환
os.chdir(경로)
os.chdir(r"c:\lib")
print(os.getcwd())
>>> c:\lib
```
os.mkdir(path)
os.makedirs(path,[exist_ok = True/False])
1) os.mkdir(path) - 경로의 마지막 디렉토리만 생성
os.mkdir(r"c:\test\source") #source디렉토리를 c:\test 하위에 생성
예:
try:
os.mkdir(r"c:\lib\source")
except FileExistsError: ## 이미 디렉토리가 있거나, 생성하려는 디렉토리(c:\classes)가 없으면 Exception 발생.
except FileNotFoundError:
print("상위디렉토리를 먼저 생성")
2) os.makedirs(path) - 상위 리덱토리가 없으면 상위디렉토리도 생성
# exist_ok = False(기본) 이미 있는 디렉토리면 Exception(
FileExistsError) 발생
# exist_ok = True :디렉토리가 있으면 무시 - 에러안나고 넘어감
os.makedirs(r"c:\class\source",exist_ok=True)
mkdir 랑makedirs는 같은 것?
- 둘 다 디렉토리를 생성한다는 면에서는 같지만, 기능이 다름
mkdir 경로가 없으면 실행 x
예: a/b/c/d경로에서 c디렉토리가 없을 경우 d를 불러올 수 없음
makedirs 경로에 없는 것을 자동으로 생성
예: a/b/c/d경로에서 c디렉토리가 없을 경우 d가 자동 생성됨.
os.rmdir(path)
- 경로의 마지막 디렉토리 삭제os.remove(path+파일명)
- 파일 삭제1) os.rmdir(path)
os. rmdir(r"c:\class\source") - 빈 디렉토리만 삭제 가능
2) os. remove(path + 파일명) - 파일 삭제
os.remove(r"c:\classes\아나콘다_주피터노트북_설치.pdf")
# 경로 : 상대/절대 모두 가능.
디렉토리의 하위요소의 이름 문자열 리스트
- os.listdir(path)
file_list = os.listdir(r"C:\Users\rladl\Desktop\data_analysis_33\01_Python")
# 지정한 디렉토리의 하위요소(파일)의 이름 문자열을 리스트에 담아 반환
file_list
>>> ['.ipynb_checkpoints',
'01_개요.ipynb',
'02_변수와 데이터타입.ipynb',
'03_자료구조.ipynb',
'04_제어문_컴프리헨션.ipynb']
경로를 생성 - 나열된 디렉토리사이에 자동으로 슬래시 생성해 문자열로 출력
- os.path.join(디렉토리1, 디렉토리2,..)
os.path.join("c:\\","b","c","d")
>>> c:\\b\\c\\d
#같은 경로에 있는 파일을 여러개 작성할 때 os.path.join()을 이용
root = r"c:\classes\01_python"
a_path = os.path.join(root,"a")
b_path = os.path.join(root, "b")
test_path = os.path.join
```