본문 바로가기

파이썬 100일 챌린지

[100일 챌린지] 파이썬 csv 모듈로 읽기 & 쓰기 #007

 

 

 

 

데이터를 직접 입력하는 것이 아닌 파일로 관리한다면 얼마나 편할까?

#006에서는 손수 데이터를 입력했었다.

 

오늘은 csv파일에서 데이터를 읽어서 그래프에 그려주려 한다. 

먼저 실습을 위해 아래처럼 csv 파일을 손수 만들자 ㅎㅎ 

A열은 x축 데이터를 의미하고, B열은 y축 데이터를 의미한다.

 

sample.csv (형식은 csv로 저장!~)

 

1. 파이썬 csv 읽기 (Read) 

먼저 그래프에서 적용하기 전, 간단하게 코드를 작성해본다. 

 

오호~ 파일 고대로 읽어온다.

찬찬히 뜯어볼까?

 

import csv

→ csv 모듈은 파이썬에 기본으로 내장되어 있어 설치할 필요는 없다.


f = open("C:/Users/user/sample.csv", encoding="cp949")

→ f라는 변수에 sample.csv을 오쁜~ 해준다는 의미이고,  한글도 지원하는 cp949 인코딩을 세팅해 준다.

 

data = csv.reader(f)

→ csv 모듈의 reader 함수로 f를 읽어 data라는 변수에 넣어준다.

 

for row in data :
    print(row)

→ data 를 한 줄씩 읽어 row에 넣어주고, row를 프린트!

 

f.close()

→ 열었던 파일을 닫는다. 

 

 

csv 파일과 그래프를 콜라보 해볼까?

허헛!! 근데 csv 파일을 잘못 만들었네?

라인별로 읽는다면 아래처럼 만들었어야 했는데....

 

그러네... 어차피 한 줄씩만 읽게 될 텐데... 

 

1행은 X축, 2행은 Y축을 의미한다. 

아직 데이터를 다루지 못해 어쩔수 없다... 파일을 고치는 수밖에...

그럼에도 불구하고.....

 

아무리 구글링을 해도 plt.plot에 어떻게 데이터를 넣어야 할지 감이 안 온다.

 

머리를 싸맸지만, 기초 공부를 안 했으니 응용이 될 리가.. 

일단 후퇴다!!!!

 

 

2. 파이썬 csv 쓰기 (Write) 

파일을 읽었으니 써야겠지.

csv 파일을 읽어오진 못해도, 파일은 제대로 생성하겠다!

 

아니 이렇게 간단하면 얼마나 좋아??

 

지정한 위치에 파일이 만들어졌다

 

내용도 정상이다. 복붙아니다!

 

 

코드는 아까와 비슷하다. 

import와 close를 제외하고 본다면,

 

f = open("C:/Users/user/sample_new.csv", mode="wt", encoding="cp949", newline='')

→ open과 파일 경로 지정 방식은 동일한데, mode 와 newline이 추가되었다.

기본 모드가 읽기이기에 wirte 하려면 모드에 w를 지정해 줘야 한다. 

t는 텍스트 모드라고 하니 일단 그렇게 알고 넘어간다...

newline='' 한 줄씩 쓴다는 의미 같다. 

newline='' 를 없애면 위에 예시처럼 나타나지 않는다. 

 

writer = csv.writer(f)

→ 쓸 준비를 하고~

 

writer.writerow([0, 2, 4])
→ 한 줄씩 쓴다.

 

 

오늘은 다른 날보다 구글링을 많이 하긴 했는데 시원치 않다..

내일은 pandas를 공부해 csv와 그래프의 콜라보를 이루겠다. 홧팅.

 

 

728x90