공부합시다!/python
19. Excel 및 CSV 파일 다루기
간서치
2023. 2. 17. 00:15
728x90
마지막 장이네요!
오늘 Python 연재를 끝내면서 잠시 휴식모드로 들어가려 합니다.
일정이 너무 바빠진 관계로..... - 다시 찾아온 기회 잘 살려봐야겠지요!
지난 시간 파일 다루기에 이어 오늘은 Excel 및 CSV 파일 다루기 입니다.
대용량 파일 내보내기에 많이 사용이 되는 CSV파일 다루기와 그 형제격인 Excel 파일 다루기 입니다.
파이썬으로 이런 작업까지
'''
Excel, CSV 처리
1. csv 읽기
2. csv 쓰기
3. xls, xlsx 읽기
4. 패키지 설치
'''
# 파이썬 외부 파일 처리
# 파이썬 Excel, CSV 파일 읽기 및 쓰기
# CSV : MIME - test/csv
# 예제 1
import csv
with open('./resource/sample1.csv', 'r') as f:
reader = csv.reader(f)
next(reader) # csv파일의 칼럼 list 제외
# 확인
print(reader)
print(type(reader))
print(dir(reader))
print()
for c in reader:
print(c)
# 예제 2
import csv
with open('./resource/sample1.csv', 'r') as f:
reader = csv.reader(f, delimiter='|')
next(reader) # csv파일의 칼럼 list 제외
# 확인
print(reader)
print(type(reader))
print(dir(reader))
print()
for c in reader:
print(c)
# 예제 3
with open('./resource/sample1.csv', 'r') as f:
reader = csv.DictReader(f)
for c in reader:
print(c)
# 예제 4
w = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]
with open('./resource/sample4.csv', 'w', newline='') as f: # newline 한줄 제거
wt = csv.writer(f)
for v in w: # 특정 조건을 필터링 할 경우는 for문이 적당
wt.writerow(v)
# 예제 5
with open('./resource/sample5.csv', 'w', newline='') as f:
wt = csv.writer(f)
wt.writerows(w)
# XSL, XSLX
# openpyxl, xlsswriter, xlrd, xlwt, xlutils
# pandas를 주로 사용
# 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()) # 문서 앞부분 5줄
print()
print(xlsx.tail()) # 문서 끝부분 5줄
print(xlsx.shape) # 행과 열 수 출력
# 엑셀 or csv 다시 쓰기
xlsx.to_excel('./resource/result.xlsx', index=False)
xlsx.to_csv('./resource/result.csv', index=False)
728x90