오늘 학습 주제
1. 파일과 디렉토리 다루기
2. 파일 정리하기
3. 예외 처리, 디버깅
4. 클래스: 객체지향 프로그래밍(OOP)
파일과 디렉토리 다루기
리눅스 & 맥에서 경로는 /
윈도우에서는 \\
OS(Operating System)모듈 사용
코드 | 설명 |
path.join() | 폴더이름과 파일이름을 합친 후 리턴 |
getcwd() | 현재 작업하고 있는 디렉토리의 경로를 리턴 |
path.basename() | 지정된 경로의 파일명을 리턴 |
path.dirname() | 지정된 경로에서 파일명을 제외한 것을 리턴 |
makedirs() | 여러 개의 폴더를 생성 |
chdir() | 지정된 경로로 위치 변경 |
절대 경로 : 항상 root 폴더에서 시작되는 경로
(ex. C:\\local\\windows)
상대 경로 : 현재 작업 폴더를 중심으로 시작하는 경로
(ex. .folder\test\file.py)
파일 읽고 쓰기
코드 | 설명 |
open(filename, mode) | 지정된 파일을 filemode에 맞춰 리턴 |
read() | 파일의 내용 전체를 문자열로 리턴 |
write() | 파일에 내용을 수정하거나 추가 |
close() | 파일을 닫는다 |
FileMode
FileMode | 설명 |
"r" | read를 의미하며 읽기 전용으로 파일을 읽어올 때 사용한다 |
"w" | write를 의미하며 파일을 수정할 때 사용한다 파일이 존재하지 않을 경우 새로 생성한다 |
"a" | append를 의하며 파일에 내용을 추가할 때 사용한다 추가되는 위치는 파일의 뒷부분이다 |
"x" | create를 의미하며 파일을 생성한다 파일이 존재하면 에러가 리턴된다 |
shutil모듈
파일을 이동하거나 복사할 때 사용
코드 | 설명 |
copy(FileName, TargetName) | 파일(FileName)을 지정한 폴더(TargetName)로 복사 |
copytree(FolderName, TargetName) | 폴더(foldername)를 지정한 폴더(TargetName)로 복사 |
move (FolderName, TargetName) | 폴더(foldername)를 지정한 폴더(TargetName)로 이동 |
pickle 모듈
텍스트 상태의 데이터가 아닌 파이썬 객체 자체를 파일로 저장
리스트나 클래스를 파일에 저장 할 때 사용
코드 | 설명 |
dump(Object, File) | Object를 File로 저장 |
load(File) | File를 리턴 |
파일 정리하기
os.walk(path): 디렉토리 내에 경로, 파일을 모두 순회하여 리턴
zipfile 모듈
ZIP 파일을 읽고 쓸 때 사용
코드 | 설명 |
zipfile(File, Mode, Compression) | Mode와 Compression에 맞춰 압축 파일을 생성 |
extract(FileName) | 지정한 파일만 압축 풀기 |
extractall() | 모든 파일을 압축 해제 |
write() | 압축 파일 내부에 지정한 파일 생성 |
예외 처리, 디버깅
- 예외 처리 -
프로그램의 비정상적인 종료를 막는 방법
- 디버깅 -
컴퓨터 프로그램 개발 과정에서 버그나 오류를 찾아내고 수정하는 작업
클래스(Class): 객체지향 프로그래밍(OOP)
- OOP(Object Oriented Programming) -
소프트웨어 개발 방법론 중 하나로, 프로그램을 객체들의 집합으로 모델링하고
이들 객체간의 상호작용을 통해 프로그램을 설계하는 방법
코드의 재사용성, 유지보수, 확장성을 높임
현실 세계의 다양한 개념(인간, 포유류 등)과 관계를 프로그램에 반영하기에 용이함
프로그램은 모두 객체로 분해되어 설계되고, 객체 간 서로 상호작용을 통해 수행됨
생성자(__init__) : 객체가 생성될 때 자동으로 실행, 생성시 필요한 코드를 포함
self: 생성자의 파라미터로 사용, 생성된 객체의 멤버를 접근할 때 사용
- 상속(ingeritance) -
객체 재사용의 한 방법, 다른 방법으로는 포함(composition)이 있다
부모 클래스의 모든 속성(데이터, 메서드)를 자식 클래스에 물려 줄 수 있다
- Override -
부모 클래스에 있는 메서드를 동일한 이름으로 다시 만드는 것
상속받은 메서드의 변수, 기능, 구조 등을 자식 클래스가 목적에 맞게 변경하여 사용 가능
- 참고 -
https://wikidocs.net/774#google_vignette
https://fhaktj8-18.tistory.com/entry/overriding-vs-overloading
'SK shieldus Rookies 16기' 카테고리의 다른 글
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(6일차) (0) | 2023.10.30 |
---|---|
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(5일차) (0) | 2023.10.27 |
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(3일차) (0) | 2023.10.25 |
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(2일차) (0) | 2023.10.24 |
[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(1일차) (0) | 2023.10.23 |