# 파일 디렉토리 다루기, [os 모듈] 의 변수와 함수들
import os
print(os.getcwd())
# CWD : Current Wroking Directory (현재 작업 디렉토리/폴더)
출력 결과
C:\dev\lab-python\lec07_file
# 절대 경로 (absolute path)
# 시스템의 루트(root)부터 전체 디렉토리 경로를 표시하는 방법
# ex) C:\dev\lab-python\lec07_file (Windows - 백슬레시\ 사용) : 현재 디렉토리
#.Users/user/Document (MacOS 또는 Linux 운영체제 : 슬레시/ 사용)
# 상대 경로 (relative path):
# 현재 작업 디렉토리(cwd)를 기준으로 경로를 표시하는 방법
# .: 현재 디렉토리, ..(상위 디렉토리)
# 상대 경로 : ..\lec06_class\inheritance01.py
# 절대 경로 : C:\dev\lab-python\lec06_class\inheritance01.py
# .\file01.py == file01.py
print(os.name) # OS 종류 확인
if os.name == 'nt': # Windows OS인 경우
file_path = '.\\temp\\temp.txt'
else: # Windows 이외의 OS인 경우
file_path = './temp/temp.txt'
print(file_path)
출력 결과
nt # print(os.name)
.\temp\temp.txt
# 파일 구분자(file seperator)를 해당 OS에 맞게끔 경로를 만들어 줌
file_path = os.path.join('temp', 'temp.txt')
print(file_path)
출력 결과
temp\temp.txt
print(os.path.isdir('.')) # directory 인가요?
print(os.path.isdir('file01.py')) # .\\file01.py
print(os.path.isfile('.')) # file 인가요 ?
print(os.path.isfile('file01.py'))
출력 결과
True
False
False
True
# with 구문: 리소스를 사용한 후 close() 메소드를 자동으로 호출
# with ... as 변수: 실행문
# 현재 directory에 포함된 파일들의 이름을 출력
with os.scandir('.') as my_dir:
for entry in my_dir:
print(entry.name, entry.is_file())
file01.py True
temp False
__init__.py True
# 파일(디렉토리) 이름 변경:
# os.rename(원본 이름, 바꿀 이름)
# 원본 파일(디렉토리)가 없는 경우에 에러 발생
os.rename('temp', 'test')
temp 폴더의 이름이 test로 변경됨
동일 구문 재실행 결과
# file 삭제: os.remove(삭제할 파일 이름)
# directory 삭제: os.rmdir(삭제할 폴더 이름)
os.rmdir('test')
# 디렉토리 만들기
# os.mkdir(디렉토리 이름)
# os.makedirs(디렉토리 이름)
os.mkdir('test2')
test2 folder가 만들어진 모습
makedirs 와 mkdir 의 차이점
os.mkdir('test\\temp') -> 오류
# test1 폴더가 없기 때문에 그 하위 폴더를 생성할 수 없음
os.makedirs('test1\\temp')
# 부족한 경로를 생성하며 정상적으로 실행됨
실행 결과
'Python > Python기초' 카테고리의 다른 글
Python 30_ 파일 디렉토리 다루기: 파일 열기 (0) | 2019.12.31 |
---|---|
Python 29_ 파일 디렉토리 다루기2 ->파일 읽기 (0) | 2019.12.30 |
Python 27_ Inheritance 상속 (0) | 2019.12.26 |
Python 26_class 설계 + __**__ 더블 언더스코어 메소드 (0) | 2019.12.25 |
Python 25_ 객체지향프로그래밍, class (0) | 2019.12.24 |