반응형
csv
CSV란 Comma Separated Values의 약자로, 쉼표로 구분된 값이라는 뜻이다.
이 형식은 스프레드시트와 데이터베이스에 대한 가장 일반적인 가져오기 및 내보내기 형식으로, 데이터를 좀 다루어 보았다면 모를 수가 없는 파일 형식이다.
csv 모듈은 CSV 형식의 데이터를 읽고 쓰는 클래스를 구현한다. 다른 응용 프로그램에서 이해할 수 있는 CSV 형식을 기술하거나 자신만의 특수한 용도의 CSV 형식을 정의할 수도 있다.
csv 모듈을 활용해 가장 간단한 읽기와 쓰기를 사용해보자.
공식 문서 https://docs.python.org/3/library/csv.html
읽기
csv.reader
import csv
f = open("data.csv", "r")
reader = csv.reader(f)
for row in reader:
print(row)
# 읽어온 것 한 번에 리스트로 보기 (2차원 리스트로 저장)
# data = list(reader)
# print(data)
f.close()
csv.DictReader
import csv
f = open("data.csv", "r")
reader = csv.DictReader(f)
# for row in reader:
# print(row)
data = list(reader)
print(data)
f.close()
쓰기
csv.writer
이차원 리스트를 csv파일로 쓰기, 첫 번째 리스트는 column 명
import csv
data = [
['id', 'name', 'price', 'amount'],
['1', 'apple', '5000', '5'],
['2', 'banana', '3000', '3'],
['3', 'cherry', '10000', '1']
]
f = open("data2.csv", "w")
writer = csv.writer(f)
for row in data:
writer.writerow(row)
# 한번에 여러줄 쓰기
# writer.writerows(data)
f.close()
csv.DictWriter
딕셔너리 리스트를 csv파일로 쓰기
주의! column 명을 명시하기 위해 fieldnames를 인자로 포함해야한다.
import csv
fieldnames = ['id', 'name', 'price', 'amount']
data = [
{'id': '1', 'name': 'apple', 'price': '5000', 'amount': '5'},
{'id': '2', 'name': 'banana', 'price': '3000', 'amount': '3'},
{'id': '3', 'name': 'cherry', 'price': '10000', 'amount': '1'},
]
f = open("data2.csv", "w")
writer = csv.DictWriter(f, fieldnames=fieldnames)
# 파일의 첫번째 행에 항목 이름들을 넣어줄 것인지 결정
writer.writeheader()
for row in data:
writer.writerow(row)
# 한번에 쓰기
# writer.writerows(data)
f.close()
반응형
'Python' 카테고리의 다른 글
[python] DataFrame 결합 - pandas.concat (0) | 2023.07.28 |
---|---|
[python] ast.literal_eval VS eval 비교하기 (0) | 2023.07.26 |
[python] APScheduler 사용하기 (1) | 2023.07.20 |
[python] pymysql VS sqlalchemy 소개 및 사용법 (0) | 2023.07.19 |
[python] logging 사용하기 (0) | 2023.07.18 |