반응형
# CSV 파일 읽기, 쓰기
# 파이썬 외부 파일 처리
# 파이썬 Excel, CSV 파일 읽기 및 쓰기
# CSV : MIME - text/csv
import csv
# 예제 1
# encoding 변수 지정 안해주면 기본적으로 'utf-8' 디코딩 -> UnicodeDecodeError 오류
with open('./resource/sample1.csv','r',encoding='euc-kr') as f:
reader = csv.reader(f)
# next(reader) Header 스킵
# 확인
print(reader) # <_csv.reader object at 0x7fda14faf650>
print(type(reader)) # <class '_csv.reader'>
print(dir(reader))
print("예제 1")
for c in reader: # 한줄씩 프린트
print(c)
# 예제 2
# 구분하기
with open('./resource/sample2.csv','r',encoding='euc-kr') as f:
reader = csv.reader(f,delimiter='|')
# next(reader) Header 스킵
# 확인
print(reader)
print(type(reader))
print(dir(reader))
print("예제 2")
for c in reader:
print(c)
# 예제 3 (Dict 변환)
with open('./resource/sample1.csv','r',encoding='euc-kr') as f:
reader = csv.DictReader(f)
print("예제 3")
# for c in reader:
# print(c)
for c in reader:
for k,v in c.items():
print(k,v)
print('--------------------------')
# 예제 4
w = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]
# newline - 개행 설정
with open('./resource/sample3.csv','w',newline='') as f:
wt = csv.writer(f)
# 한줄씩 쓰기
for v in w:
wt.writerow(v)
# 예제 5
with open('./resource/sample4.csv','w',newline='') as f:
wt = csv.writer(f)
wt.writerows(w) # 한번에 모든 줄 쓰기
# Excel 파일 읽기
# XSL, XLSX
# openpyxl, xlswriter, xlrd, xlwt, xlutils
# pandas를 주로 사용 (openpyxl, xlrd)
# pip install openpyxl
# pip install pandas
import pandas as pd
xlsx = pd.read_excel('./resource/sample.xlsx')
# 상위 데이터 확인
print(xlsx.head())
print()
# 하위 데이터 확인
print(xlsx.tail())
print()
# 데이터 확인
print(xlsx.shape) # 행,열
# 엑셀 or CSV 다시 쓰기
xlsx.to_excel('./resource/result.xlsx', index=False)
xlsx.to_csv('./resource/result.csv', index=False)
반응형
'Algorithm > 자료구조, 알고리즘' 카테고리의 다른 글
[코딩 + 알고리즘 완주반] 10일차. 타이핑 게임 프로젝트 (0) | 2021.03.25 |
---|---|
[코딩 + 알고리즘 완주반] 9일차. 데이터베이스 연동 (SQLite) (0) | 2021.03.23 |
[코딩 + 알고리즘 완주반] 8일차. 예외 처리 (0) | 2021.03.22 |
[코딩 + 알고리즘 완주반] 8일차. 파일 읽기, 쓰기 (0) | 2021.03.22 |
[코딩 + 알고리즘 완주반] 7일차. 모듈, 패키지 (0) | 2021.03.21 |