Python CSV 모듈을 활용한 CSV 파일 읽기와 내용 덧붙이는 방법입니다.
# csv 모듈 import # 참고링크 : https://docs.python.org/3.7/library/csv.html import csv # with로 오픈 with open('pick_bus.csv', 'r', encoding='utf8') as f: reader = csv.reader(f) station_info = list(reader)[1:] #csv파일을 제대로 읽어왔는지 일부데이터 확인 station_info[:5]
with open('pick_bus.csv', 'r', encodin='utf8') as f: 에서 'pic_bus.csv"는 오픈하려고 하는 csv 파일명이고 뒤에 'r' 옵션은 read 하겠다는 의미, encoding='utf8'은 인코딩 방법을 명시해준 것입니다.
앞에 with 문을 써준 것은 파일을 open 하고 나서 close를 해주어야 하는데, with문을 사용하면 그 절차를 생략할 수 있습니다.
reader = csv.reader(f)는 read 한 파일을 읽는 것이고, station_info = list(reader)[1:]은 읽은 CSV 파일을 인덱스 1번부터 끝까지 슬라이싱 해서 리스트로 저장하는 것입니다.
위의 코드 결과는 아래에 첨부합니다.
경우에 따라 CSV 파일에 내용을 계속 덧붙여야(Append) 하는 경우가 있습니다.
그때는 파일 open시 'r' : read옵션이 아니라 'a' : append 옵션을 사용하면 됩니다. 쓰기용으로 'w' : write 옵션도 존재하고 'rw'와 같이 read, write 옵션을 동시에 사용할 수도 있습니다. 상세 코드와 결과 아래에 첨부했습니다.
import csv mylist= ['a','b','c'] for i in range(5): with open('test.csv', 'a') as myfile: wr = csv.writer(myfile) wr.writerow(mylist) for i in range(5): with open('test.csv', 'a', newline='') as myfile: wr = csv.writer(myfile) wr.writerow(mylist)
for loop를 2개 만들어서 ['a', 'b', 'c']를 각 5번씩 Append 하는 코드입니다.
위아래 2개 loop의 차이는 1번 loop는 newline이 default 값{\n)으로 들어가고, 2번 loop는 newline을 ''으로 명시해주었다는 것입니다. 결과적으로 1번 반복문(loop)에서는 덧붙일 때마다 1행 씩 빈행이 발생하고 2번 반복문은 빈행이 발생하지 않습니다.
[좌표를 주소로 변환하기(Python)] 카카오, 네이버 API 사용법, 지오코딩(Geocoding) (8) | 2020.03.25 |
---|---|
[Python] 텍스트로 된 숫자(파일명) 정렬하기 natsort 라이브러리 활용 (1) | 2020.03.06 |
Python으로 CSV(Comma Separated Values) 파일 읽는 방법 with csv, pandas (0) | 2020.01.23 |
[Python 더블 언더스코어] __repr__ (0) | 2019.12.11 |
[Python] Iterator를 이용한 while loop (0) | 2019.12.04 |