예외
예외 관련 클래스는 Exception 클래스를 상속한다.
예외처리
예상치 못한 예외가 프로그램 전체 실행에는 영향이 없도록 처리함. 발생할 수 있는 예외 부분에 대해 처리해둠.
try ~ except / else / finally
# try ~ except
try :
문제가 될 수 있는 부분.
except:
문제 발생된다면 이 부분을 실행.
# ~else
try :
문제가 될 수 있는 부분.
except:
문제 발생된다면 이 부분을 실행.
else:
문제 발생하지 않는다면 이 부분을 실행.
# finally
try :
문제가 될 수 있는 부분.
except:
문제 발생된다면 이 부분을 실행.
else:
문제 발생하지 않는다면 이 부분을 실행.
finally:
예외 발생과 상관 없이 항상 실행
Exception 클래스
- except Exception as e: print(e) >> 에러 내용을 출력해줌.
- raise 강제적으로 예외를 발생시킬 수 있다.
if ~ else : raise Exception('나눌수 없음')
try ~ except Exception as e : print(e)
# 0으로 나눌수 없음. 문구를 에러 내용으로 출력해줌.(raise가 에러 발생 시킴)
* Exception 클래스를 상속해서 사용자 예외 클래스를 만들 수 있다.
텍스트 파일
open() > read() | write() > close() : 파일 읽고 or 쓰고 닫기
# 예시 : 시스템 시간과 일정을 텍스트 파일에 작성
import time
lt = time.localtime()
dateStr = '[' + str(lt.tm_year) + '년' + \
str(lt.tm_mon) + '월' + \
str(lt.tm_mday) + '일]'
todaySchedule = input('오늘 일정: ')
file = open('Users/annmunju/Desktop/"test.txt"', 'w')
file.write(dateStr + todaySchedule)
file.close()
텍스트파일 열기 (read)
• ‘w’ : 쓰기 전용(파일이 있으면 덮어씌움) • ‘a’ : 쓰기 전용(파일이 있으면 덧붙임)
• ‘x’ : 쓰기 전용(파일이 있으면 에러 발생) • ‘r’ : 읽기 전용(파일이 없으면 에러 발생)
파일 닫기 생략 : with ~ as 문
file = open(uri + '123.txt', 'a')
file.write('Hello world')
file.close()
# 위 코드와 아래 코드 작동 동일
with open(uri + '123.txt', 'a') as f:
f.write('Hello world')
반복하는 자료구조(리스트, 튜플) 데이터를 파일에 쓰기 : writelines()
alphabet = ['a', 'b', 'c', 'd', 'e']
for item in alphabet:
with open('alphabet.txt', 'a') as f:
f.write(item)
f.write('\n')
# 위 코드와 아래 코드 작동 동일
with open('alphabet.txt', 'a') as f:
f.writelines(alphabet)
텍스트 파일 내용 한 줄씩 읽어오기 : readline(), readlines()
# alphabet.txt
## a
## b
## c
## d
## e
with open('alphabet.txt', 'r') as f:
line = f.readlines() # 파일 전체를 리스트 형식으로 읽어옴.
## ['a', 'b', 'c', 'd', 'e']
with open('alphabet.txt', 'r') as f:
line = f.readline() # 한줄 읽어옴
## 'a'
728x90
'코딩 어쩌구 > 자료구조와 알고리즘' 카테고리의 다른 글
[python] 순위 알고리즘 (0) | 2021.11.05 |
---|---|
[python] 검색 알고리즘 (0) | 2021.11.05 |
[python] 모듈과 클래스 (0) | 2021.10.11 |
[python] 함수 (0) | 2021.10.08 |
[python] 자료구조 : 튜플과 딕셔너리 (0) | 2021.10.05 |