import os 명령으로 os library를 import해서 사용한다.
* 예시에서 directory는 모두 폴더에 있는 주소를 의미하고, string 자료형이다. 예를 들어 바탕화면에 대한 directory는 다음과 같이 입력해주면 된다.
directory = 'C:/Users/user/Desktop/'
위와 같이 directory 주소를 입력하는 것을 절대경로라고 한다. 절대경로 대신 상대경로로도 입력할 수 있다. jupyter notebook의 경우 상대경로는 .ipynb 파일이 있는 경로를 그 하위 directory(폴더)로 접근할 수 있다. 예를 들어 현재 .ipynb 파일이 있는 폴더 내에 test라는 폴더에 접근하려고 하면 다음과 같이 입력해준다.
directory = './test/'
1. os.path.exists(directory): 해당 directory에 원하는 이름의 폴더가 있는지 확인
ex>
directory = 'C:/Users/user/Desktop/'
a = os.path.exists(directory+'test')
print(a)
-> directory가 가리키는 폴더에 test라는 파일이 있으면 True를 출력하고, 파일이 없으면 False를 출력한다.
2. os.mkdir(directory): 해당 directory에 directory가 가리키는 폴더 생성
ex>
directory = 'C:/Users/user/Desktop/'
os.mkdir(directory+'test')
-> test 파일이 없으면 test라는 이름의 폴더가 directory가 가리키는 폴더에 생성된다. 이미 폴더가 있는 경우 'FileExistsError: [WinError 183] 파일이 이미 있으므로 만들 수 없습니다'라는 에러 메시지가 생성된다.
-> 때문에 보통 os.mkdir를 이용해서 에러 없이 폴더를 생성하기 위해서는 1번에 나온 os.path.exists을 같이 사용하여 다음과 같이 코딩한다.
ex>
directory = 'C:/Users/user/Desktop/'
if not os.path.exists(directory+'test'):
os.mkdir(directory+'test')
3. os.path.join(directory1, directory2): 두 경로를 결합하여 새 경로 생성
directory가 string함수이기 때문에 단순히 string 객체를 합치는 + 연산으로 해도 될 것 같은데 은근 많이 쓰이는 방법 중 하나이다. string 객체의 단순 합보다 좋은 점은 /가 경로 사이에 생략이 되어도 경로로 사용될 수 있게 처리를 해준다.
ex1>
directory1 = 'C:/Users/user/Desktop/'
directory2 = 'test/example/'
a = os.path.join(directory1, directory2)
print(a)
>> C:/Users/user/Desktop/test/example/
ex2>
directory1 = 'C:/Users/user/Desktop'
directory2 = 'test/example/'
a = os.path.join(directory1, directory2)
print(a)
>> C:/Users/user/Desktop\test/example/
-> 경로 사이에 '/'가 생략되어도 \가 자동으로 추가돼 경로로 사용할 수 있다.
'Python' 카테고리의 다른 글
Matplotlib-pyplot(plt)로 Python에서 그래프 그리기 기본 (0) | 2020.12.20 |
---|---|
tensor - numpy - PILImage 변환 (0) | 2020.12.04 |
있어보이는 Python: map, lambda (0) | 2020.11.13 |
있어보이는 Python: try/except, enumerate (0) | 2020.11.09 |
Window Python(Jupyter Notebook)에서 tar.gz 파일로 압축 및 해제하기 (0) | 2020.11.09 |