이번 포스팅에서는 파이썬의 예외처리, 파일처리 로그처리에 대한 개념을 정리해보고 데이터를 다루는 여러가지 방법에 대하여 정리를 해 보았습니다.
발생할 수 있는 예외를 사전에 처리하여 프로그램이 중지되지 않고 실행될 수 있도록 Handling이 가능
try ~ except구문
try ~ except (+)구문
raise구문
assert문
파일 열기 모드의 종류
파일 읽어오기
파일 읽어오기(readlines) : 내용을 한번에 가져옴
파일 읽어오기(readline) : 내용을 한줄씩 가져옴(대용량의 파일 처리시 유용, 종료조건 설정을 해 주워야 함)
인코딩 방식에 따른 파일 쓰기
pickle
os모듈에 있는 path.join을 이용하면 운영체제에 맞는 경로를 도출해 낼 수 있다
파일 복사
pathlib 모듈을 사용하여 path를 객체로 담에 더욱 편리하게 접근 가능
원하는 파일에 남기고 싶은 문자열(문구)저장
Logging Handling : logging 모듈을 사용하여 기본 로그들을 관리할 수 있다.
기본적으로 초기 세팅은 warning단계부터 출력을 해 줌
단계 조절은 추가적인 세팅이 필요함
로그의 내용을 파일에 저장 가능
formatter적용 : 로그의 형식을 지정 해 줄 수 있음
#log formatter
#log의 결과값의 format을 지정해줄 수 있음
import logging
logger = logging.getLogger('spam_application')
logger.setLevel(logging.DEBUG)
fh = logging.FileHandler('spam.log') #파일에 로그 저장
fh.setLevel(logging.DEBUG)
ch = logging.StreamHandler() #콘솔에 찍히는 로그 레벨 저장
ch.setLevel(logging.ERROR)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(ch)
logger.debug("a")
logger.info("b")
logger.warning("c")
logger.error("d")
logger.critical ("e")
파일 위치, 저장장소 , Operation타입 등 프로젝트 내에서 반복적으로 쓰이는 설정 정보를 관리하기 위해 파이썬은 1)configparser 2)argparser를 이용한다
configparser : 프로그램 설정 정보를 파일에 넣고 모듈을 이용하여 값을 사용
터미널의 touch 명령어를 사용하여 파일을 생성 후 vi 명령어를 통하여 파일 수정
-argparser(Command-Line Option) : 콘솔에서 프로그램 실행시 설정값을 제공하여 저장
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args)
print(args.accumulate(args.integers))
python3 argparser_ex.py 1 2 3 4
python3 argparser_ex.py 1 2 3 4 --sum
python3 argparser_ex.py -h
with open("csv/customers.csv") as f:
while True:
data = f.readline() #한줄씩 가져옴
if not data:
break
import csv
with open("csv/customers.csv") as f:
#delimiter : 필드의 구분, quotechar : delimiter를 포함한 데이터를 묶을 구분자, quote의 필드 적용범위<csv.QUOTE_ALL - 모든 필드가 '"'로 구분>
reader = csv.reader(f,delimiter = ',', quotechar = '"', quoting = csv.QUOTE_ALL)
import re
import urllib.request
#html내용을 가져옴
url = "https://bit.ly/3rxQFS4"
html = urllib.request.urlopen(url)
html_contents = str(html.read().decode("utf8"))
results = re.findall(r"([A-Za-z0-9]+\*\*\*)", html_contents) #패턴을 가진 문자열을 찾아냄
for result in results:
print(result)
Naver BoostCamp AI Tech - edwith 강의
https://m.blog.naver.com/PostView.nhn?blogId=acornedu&logNo=220934409189&proxyReferer=https:%2F%2Fwww.google.com%2F
https://wikidocs.net/21050
https://wikidocs.net/26
https://tariat.tistory.com/844
https://docs.python.org/ko/3/library/argparse.html
https://docs.python.org/ko/3.7/howto/logging-cookbook.html
https://docs.python.org/ko/3/howto/logging-cookbook.html