본문 바로가기
프로그래밍

python, 파일다루기(1) - csv

by 청청개구리 2021. 12. 25.
728x90

 

 

단순한 데이터 취득이거나, 설정값의 외부 보존(혹은 불러오기) 여러 이유로 파일 다루기가 필요한데,

 

1탄,  csv파일

 

1. 파일 준비

'test1.csv' 파일을 준비합니다. 내용은, 엑셀에서 보면 이렇고,

텍스트로 보면 이런 상태입니다. (notepad++입니다)

 

 

2. 읽기

파일 안의 내용을 읽어 보겠습니다.

1
2
3
4
5
6
import csv
f=open('test1.csv')
rdr=csv.reader(f)
for line in rdr:
    print(line)
f.close()
cs

 

실행결과는 아래와 같습니다 (환경은 주피터 노트북입니다.)

각각의 행이 리스트 형태로 되어 있음을 알 수 있습니다.(하지만 rdr 변수는 리스트형은 아님에 주의)

 

 

3. 쓰기

test1.csv와 비슷한 내용의 csv 파일, test1-wr.csv 을 만들어 보겠습니다.

1
2
3
4
5
6
7
import csv
= open('tet1-wr.csv','w', newline='')
wr = csv.writer(f)
wr.writerow(['PPP''120'])
wr.writerow(['QQQ''130'])
wr.writerow(['RRR''140'])
f.close()
cs
 

파일의 결과는 아래와 같습니다.

뭔지 감이 올 겁니다.

 

4. 쓰기2

이제 먼저 만들었던 test1.csv파일에 이어서 행을 추가해서, test1-wr2.csv를 만들어 봅니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import csv
 
fr=open('test1.csv')
rdr=csv.reader(fr)
rdfile=[]
for line in rdr:
    #print(line)
    rdfile.append(line)
fr.close()
#print(rdfile)
 
rdfile.append(['EEE','99'])
#print(rdfile)
 
fw = open('tet1-wr2.csv','w', newline='')
wr = csv.writer(fw)
for line in rdfile:
    wr.writerow(line)
fw.close()
cs

5행, rdfile이라는 리스트를 만들고

8행, 읽어들은 정보를 저장해두고

12행, 자료를 리스트에 추가하고

18행, 새로운 파일에 전체 자료를 넣습니다.

제일 마지막행에 자료를 추가해보는 것으로 마무리 하지만, 원하는 자리를 찾아서 넣을 수도 있을 겁니다.

내용 확인해 보면 아래와 같이 됩니다.

더 나은 방법이 있을 것도 같은데(뭔가 더 파이썬 스러운), 일단 요기까지.

 

 

 

 

728x90