[python] 외부파일 처리 (csv, excel 읽기 쓰기)
import csv
with open('./resource/sample1.csv', 'r') as f:
reader = csv.reader(f)
#next(reader) # skip header of csv file
print(reader, type(reader))
print(dir(reader))
for c in reader:
print(c)
with open('./resource/sample2.csv', 'r') as f:
# delimiter : 어떤 문자를 기준으로 잘라서 list로 형성할지
reader = csv.reader(f, delimiter = "|")
for c in reader:
print(c)
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)
w = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]]
# 새롭게 쓰는 파일에서 줄바꿈을 하지 않은 상태로 쓰겠다.. 기본 값은 엔터가 2번씩 된 상태로 쓰여짐
with open ('./resource/sample3.csv', 'w', newline ='') as f:
wt = csv.writer(f)
for v in w:
wt.writerow(v)
with open ('./resource/sample3.csv', 'w', newline ='') as f:
wt = csv.writer(f)
# 한 번에 쓸 때, writerows
wt.writerows(w)
# XSL, XLSX
# openpycl, xlsxwriter, xlrd, xlwt, xlutils
# pandas를 주로 사용
import pandas as pd
# sheetname = '시트명' 또는 숫자,
# header = 숫자 : 몇 번째 행을 헤더로 지정할 것인지
# skiprow = 숫자 : 몇 번째 행은 가져오지 않을 것인지
xlsx = pd.read_excel('./resource/sample.xlsx')
print(xlsx.head())
print(xlsx.tail())
print(xlsx.shape)
# 엑셀 or csv 파일로 다시 쓰기
xlsx.to_excel('./resource/result.xlsx', index = False)
xlsx.to_csv('./resource/result.csv', index = False)