반응형
1. CSV란?
조건식이 많고 처리 데이터 양이 많으면 엑셀 데이터가 아닌 CSV 데이터 형식으로 다뤄야 한다.
CSV(Comma Separated Value) 정의 : 쉼표로 나눠진 값을 저장한 데이터
CSV 특징 :
1. 엑셀 자료를 불러와 복잡한 전산 작업 가능
2. 원형 그대로 가공하기 좋은 데이터 형식
3. 파이썬으로 불러와 복잡한 연산 수행이 가능
위와 같이 저장된 csv파일을 불러오면 comma로 구분된 형태를 볼 수 있다.
엑셀에 저장할 수 있는 CSV 파일 형식
1. CSV (쉼표 분리) : 프로그래밍용
2. CSV UTF-8 (쉼표 분리) : 한글 깨지는 문제 해결. 에디터, 인터프리터 환경에선 인코딩되지 않는 문제 발생가능
2. 파이썬으로 CSV 활용하기
파이썬으로 CSV파일의 내용을 불러와
파이썬에서 사용하려면 CSV 파일 자료 형태를 수정해야함.
CSV형 리스트 = [[1행], [2행], ..., [n행]]
>>> import csv, os
>>> os.chdir(r'C:\Users\J3E\Desktop')
>>> f = open('a.csv','r')
>>> csv_read_obj = csv.reader(f) # a.csv를 가진 객체f를 읽음
>>> csv_read_obj
<_csv.reader object at 0x0000026A0F156E20>
>>> for i in csv_read_obj : # csv파일 출력
... print(i)
...
['국', '영', '수']
['100', '98', '99']
>>> a_list = [] # csv형 리스트로 변경하기 위해 객체 만듦
>>> for i in csv_read_obj :
... print(i)
... a_list.append(i)
...
>>> a_list
[] # ???
빈리스트인 이유는?
csv.reader(f)로 csv파일을 읽은 값을 csv_read_obj에 저장하면서 커서가 맨마지막으로 이동했기 때문
파일을 처음부터 읽기 위해선 seek()함수를 사용하여 커서를 처음으로 이동해야 한다.
>>> f.seek(0) # 커서를 처음으로 이동
0 # 커서가 처음으로 이동했다는 의미
>>> for i in csv_read_obj :
... print(i)
... a_list.append(i)
...
['국', '영', '수']
['100', '98', '99']
>>> a_list
[['국', '영', '수'], ['100', '98', '99']]
계속 불러올 순 없으니 csv 파일을 불러오는 함수를 만들자
def opencsv(filename) :
f = open(filename, 'r', encoding = 'utf-8')
reader = csv.reader(f)
output = []
for i in reader :
output.append(i)
return output
f.close()
위 코드를 모듈로 만들면 더 쉽게 인터프리터에서 활용가능하다.
반응형
'● 인공지능, 분석 > 20.12 생활 프로그래밍' 카테고리의 다른 글
튜플이란? j = 1,444,000이 튜플이 되는 이유? (0) | 2021.01.07 |
---|---|
[4.csv] (0) | 2021.01.05 |
[3. 정규표현식] 정규표현식 (0) | 2021.01.02 |
[03.정규표현] 입출력 (0) | 2020.12.27 |
[02.기초] return, print (0) | 2020.12.27 |