본문 바로가기
코딩 어쩌구/자료구조와 알고리즘

[python] 예외처리와 텍스트 파일

by annmunju 2021. 10. 11.

예외 

예외 관련 클래스는 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