본문 바로가기
데이터 이해하기/데이터 다루기

파이썬 csv파일 다루기(읽기, 쓰기, 수정, 추가)

by ag_zero 2022. 7. 29.
728x90

1. csv 파일 읽기

import csv
 
f = open('example.csv','r')
rdr = csv.reader(f)
 
for line in rdr:
    print(line)
 
f.close()
각 line은 list 형식으로 되어있고, 해당 리스트의 인덱스를 지정하면 원하는 열만 가져올 수도 있다.
for line in rdr:
    print(line[1])

 

읽을때 skiprows를 통해 필요없는 행을 제외하고 불러올 수 있다.

def makeBCISample(file_path, file_name, ofile_name, start_pos, end_pos):
    with open(os.path.join(file_path, file_name), 'r', encoding='utf-8') as csvfile:
        csvreader = csv.reader(csvfile)    
    
        csvlist = list(csvreader)

    df = pd.read_csv(os.path.join(file_path, file_name), skiprows=4)

 

 

2. csv 파일 쓰기

open함수를 통해 파일명을 명시하고(writer.csv) 쓰기 모드를 옵션으로 주면(w) 해당 csv파일에다가 원하는 내용을 쓸 수 있다.

f = open('write.csv','w', newline='')
wr = csv.writer(f)
wr.writerow([1,'나다가', '부산'])
wr.writerow([2,'마바사', '서울'])
 
f.close()

 

 

3. 행 추가하기

f = open('write.csv','a', newline='')
wr = csv.writer(f)
wr.writerow([3,'아자차', '강원'])
 
f.close()

 


4. 파일 수정하기

f = open('example.csv','r')
rdr = csv.reader(f)
lines = []
for line in rdr:
    if line[0] == "마바사":
        line[1] = "서울"
    lines.append(line)
 
f = open('example.csv','w',newline='') #원본을 훼손할 위험이 있으니 다른 파일에 저장하는 것을 추천
wr = csv.writer(f)
wr.writerows(lines)
 
f.close()