패스트캠퍼스 파이썬 웹개발 올인원 패키지 후기(12)
파이썬 웹개발 올인원 패키지 12 일차 후기 겸 학습기록 입니다.
지난 시간에 배운 파이썬 예외처리에 대해 좀 더 배웠습니다.
그리고, 엑셀 및 CSV 파일을 어떻게 파이썬에서 다룰 수 있는지 학습하였습니다.
오늘도 학습 기록 시작해 보겠습니다!
파이썬 예외처리

(finally 키워드)
name = ['Kim', 'Park', 'Jo']
# 예제 3
try:
z = 'Jin'
x = name.index(z)
print('{} was founded in name'.format(z, x+1))
except: # 모든 에러 Handle
print('Not found - Occured error!')
else:
print('Ok! else!')
finally:
print('finally ok!')
print()
print()
(try - finally 파이썬 코딩 패턴)
# 예제 4
# 예외처리는 하지 않지만, 무조건 수행되는 코딩 패턴
try:
print('Try')
finally:
print('OK Finally!!!')
print()
print()
(멀티 excpet)
# 예제 5
try:
z = 'Jin'
x = name.index(z)
print('{} was founded in name'.format(z, x+1))
except ValueError as l:
print(l)
except IndexError:
print('Not found - Index error!')
except Exception: # except 순서도 중요 -> Exception은 최종적으로 마지막에 있는게 좋음
print('Not found - Occured error!')
else:
print('Ok! else!')
finally:
print('finally ok!')
print()
print()
(raise 키워드)
# 예제 6
# 예외 발생 : raise
# raise 키워드로 예외 직접 발생
try:
a = 'Kima'
if a == 'Kim':
print('Ok 허가!')
else:
raise ValueError
except ValueError:
print("문제 발생!")
except Exception as f:
print(f)
else:
print('OK')
파이썬 Excel, CSV 읽기 쓰기

( CSV 기본 )
# 예제 1 - 기본
with open('./resource/sample1.csv', 'r') as f:
reader = csv.reader(f)
next(reader) # Header 스킵 용(제목 행)
# 확인
print(reader)
print(type(reader))
print(dir(reader))
print()
for c in reader:
print(c)
print()
print()
(delimiter 파라미터)
# 예제 2 - delimiter 파라미터
with open('./resource/sample2.csv', 'r') as f:
reader = csv.reader(f, delimiter='|') # 구분자 지정(delimiter)
next(reader) # Header 스킵 용(제목 행)
# 확인
print(reader)
print(type(reader))
print(dir(reader))
print()
for c in reader:
print(c)
print()
print()
(Dict 변환)
# 예제3 (Dict 변환)
with open('./resource/sample1.csv', 'r') as f:
reader = csv.DictReader(f)
for c in reader:
for k, v in c.items():
print(k, v)
print('----------------')
(CSV 파일 쓰기)
# 예제 4 - csv 파일 쓰기
w = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]]
with open('./resource/result3.csv', 'w', newline='') as f:
wt = csv.writer(f)
for v in w:
wt.writerow(v)
<Output>
<_csv.reader object at 0x000001B67864FB20>
<class '_csv.reader'>
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'dialect', 'line_num']
['1', '김정수', '2017-01-19 11:30:00', '25']
['2', '박민구', '2017-02-07 10:22:00', '35']
['3', '정순미', '2017-01-22 09:10:00', '33']
['4', '김정현', '2017-02-22 14:09:00', '45']
['5', '홍미진', '2017-04-01 18:00:00', '17']
['6', '김순철', '2017-05-14 22:33:07', '22']
['7', '이동철', '2017-03-01 23:44:45', '27']
['8', '박지숙', '2017-01-11 06:04:18', '30']
['9', '김은미', '2017-02-08 07:44:33', '51']
['10', '장혁철', '2017-12-01 13:01:11', '16']
<_csv.reader object at 0x000001B67864FAC0>
<class '_csv.reader'>
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'dialect', 'line_num']
['1', '김정수', '2017-01-19 11:30:00', '25']
['2', '박민구', '2017-02-07 10:22:00', '35']
['3', '정순미', '2017-01-22 09:10:00', '33']
['4', '김정현', '2017-02-22 14:09:00', '45']
['5', '홍미진', '2017-04-01 18:00:00', '17']
['6', '김순철', '2017-05-14 22:33:07', '22']
['7', '이동철', '2017-03-01 23:44:45', '27']
['8', '박지숙', '2017-01-11 06:04:18', '30']
['9', '김은미', '2017-02-08 07:44:33', '51']
['10', '장혁철', '2017-12-01 13:01:11', '16']
번호 1
이름 김정수
가입일시 2017-01-19 11:30:00
나이 25
----------------
번호 2
이름 박민구
가입일시 2017-02-07 10:22:00
나이 35
----------------
번호 3
이름 정순미
가입일시 2017-01-22 09:10:00
나이 33
----------------
번호 4
이름 김정현
가입일시 2017-02-22 14:09:00
나이 45
----------------
번호 5
이름 홍미진
가입일시 2017-04-01 18:00:00
나이 17
----------------
번호 6
이름 김순철
가입일시 2017-05-14 22:33:07
나이 22
----------------
번호 7
이름 이동철
가입일시 2017-03-01 23:44:45
나이 27
----------------
번호 8
이름 박지숙
가입일시 2017-01-11 06:04:18
나이 30
----------------
번호 9
이름 김은미
가입일시 2017-02-08 07:44:33
나이 51
----------------
번호 10
이름 장혁철
가입일시 2017-12-01 13:01:11
나이 16
----------------

(csv 쓰기)
# 예제 5 - csv row 한번에 쓰기(writerows 함수)
with open('./resource/sample4.csv', 'w', newline='') as f:
wt = csv.writer(f)
wt.writerows(w)
(엑셀 다루기)
# XSL, XLSX
# openpyxl, xlsxwriter, xlrd, xlwt, xlutils
# pandas 를 주로 사용(openpyxl, xlrd)
# pip install xlrd
# pip install openpyxl
# pip install pandas
import pandas as pd
# sheetname='시트명' 또는 숫자, header=숫자, skiprow=숫자
xlsx = pd.read_excel('./resource/sample.xlsx')
# 상위 데이터 확인
print(xlsx.head())
print()
# 데이터 확인
print(xlsx.tail())
print()
# 데이터 확인
print(xlsx.shape) # 행, 열
print()
# 엑셀 or CSV 다시 쓰기
xlsx.to_excel('./resource/result.xlsx', index=False)
xlsx.to_csv('./resource/result.csv', index=False)
<Output>
Sap Co. 대리점 영업사원 전월 금월 TEAM 총 판매수량
0 KI1316 경기수원대리점 이기정 1720000 2952000 1 123
1 KI1451 충청홍성대리점 정미진 4080000 2706000 2 220
2 KI1534 경기화성대리점 경인선 600000 2214000 1 320
3 KI1636 강원속초대리점 이동권 3720000 2870000 3 110
4 KI1735 경기안양대리점 강준석 4800000 2296000 1 134
Sap Co. 대리점 영업사원 전월 금월 TEAM 총 판매수량
15 KI2870 경기구리시대리점 박진형 6000000 3400000 2 143
16 KI2910 강원춘천대리점 김은향 4800000 4896000 1 176
17 KI3030 강원영동대리점 전수창 4560000 3128000 2 98
18 KI3131 경기하남대리점 김민정 2750000 7268000 3 293
19 KI3252 강원포천대리점 서가은 2420000 4740000 4 240
(20, 7)
파이썬 예외처리를 복습하고 마무리하였습니다.
그리고 CSV와 엑셀 파일을 다루는 방법을 배웠습니다.
그 유명한 파이썬 pandas 패키지도 설치하고 사용해 보았는데요..
지금 당장 회사의 수많은 excel 파일들을 파이썬으로 처리하고 분석해보고 싶은 욕망이 생기네요!
패스트캠퍼스 파이썬 인강 후기 계속 됩니다!
패스트캠퍼스 파이썬 인강 자세한 내용은 아래 링크를 참고해 주세요!
'Python Basics' 카테고리의 다른 글
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 14 회차 미션 (0) | 2020.06.07 |
|---|---|
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 13 회차 미션 (0) | 2020.06.06 |
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 11 회차 미션 (0) | 2020.06.04 |
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 10 회차 미션 (0) | 2020.06.03 |
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 9 회차 미션 (0) | 2020.06.02 |