본문 바로가기

Python Basics

[패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 12 회차 미션

패스트캠퍼스 파이썬 웹개발 올인원 패키지 후기(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 파일 Handle 하기

( 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 파일들을 파이썬으로 처리하고 분석해보고 싶은 욕망이 생기네요!

패스트캠퍼스 파이썬 인강 후기 계속 됩니다!

 

 

패스트캠퍼스 파이썬 인강 자세한 내용은 아래 링크를 참고해 주세요!

 

https://bit.ly/2WG0IXN