반응형
파이썬 CSV 쓰기
csv 작성은 csv.writer 함수로 실행합니다. 아래 예제를 통해 쉽게 이해해 보겠습니다.
예제 코드>>
def wr_csv(data):
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
위와 같이 함수를 작성해서 실행합니다. data.csv 라는 파일을 만들고 입력할 값을 여러개의 list 값을 묶어서 입력 합니다. 한줄만 입력하고 싶을 경우 writerow 함수와 리스트 값 하나만 입력 하면됩니다.
파이썬 CSV 읽고 데이터베이스에 쓰기
CSV 읽기 방법도 쓰기와 유사합니다. 이번에는 csv.reader 함수를 사용해서 실행하겠습니다. 읽은 값은 SQLite 명령어 INSERT INTO 를 사용해서 checkup 테이블에 작성하겠습니다.
SQLite 기본 사용법은 앞 포스트에 자세하게 설명되어 있습니다.
예제 코드>>
def csv_db(cursor_db):
student = csv.reader(open('data.csv', 'r'), delimiter=',', quotechar='"')
index = 0
for row in student:
index = index + 1
print("%s %s" % (index, row))
cursor_db.execute("INSERT INTO checkup VALUES (?, ?, ?, ?, ?)", (index, row[0], row[1], row[2], row[3]))
파이썬 SQLite에 csv 파일 DB에 쓰기 전체 코드
이번에 앞서 작성한 함수를 사용해서 전체 코드를 작성해보겠습니다.
예제 코드>>
import csv
import sqlite3
from sqlite3 import Error
def connection():
try:
con = sqlite3.connect('test7.db')
cursor_db = con.cursor()
return con, cursor_db
except Error:
print(Error)
def create_table(cursor_db):
cursor_db.execute("CREATE TABLE checkup(id integer PRIMARY KEY, Name text, Height real, Weight real, Measured_date text)")
def wr_csv(data):
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
def csv_db(cursor_db):
student = csv.reader(open('data.csv', 'r'), delimiter=',', quotechar='"')
index = 0
for row in student:
index = index + 1
print("%s %s" % (index, row))
cursor_db.execute("INSERT INTO checkup VALUES (?, ?, ?, ?, ?)", (index, row[0], row[1], row[2], row[3]))
def ex_close(con):
con.commit()
con.close()
data = (['John','180cm','75kg','2022-09-08'],['Mina','179cm','101kg','2022-09-08'],['Dan','186cm','70kg','2022-09-08'],['Hart','172cm','65kg','2022-09-08'])
wr_csv(data)
con, cursor_db = connection()
create_table(cursor_db)
csv_db(cursor_db)
ex_close(con)
5~11번 라인: DB에 연결합니다.
13~14번 라인: checkup 테이블을 작성합니다.
16~19번 라인: csv 파일을 작성합니다.
21~27번 라인: csv 파일을 읽고 checkup 테이블에 읽은 값을 입력 합니다.
29~31번 라인: SQLite를 종료합니다.
33번 라인: csv에 넣을 입력값
결과>>
위와 같이 정상적으로 Data Base가 작성되었음을 알 수 있습니다.
반응형
'데이터베이스(db) > SQLite' 카테고리의 다른 글
[Python] Sqlalchemy로 데이터베이스 읽기, 조건문 설정하기 (0) | 2022.10.21 |
---|---|
[Python] SQLAlchemcy란? 테이블 생성, 데이터 입력(SQLite, ORM) (0) | 2022.10.19 |
[Python] SQLite 데이터 하나 쓰기, 여러개 쓰기 삭제하기 조건걸기(Write, Delete) (0) | 2022.09.23 |
[Python] SQLite 테이블 if not 으로 검색 후 생성, 삭제(drop, delete) (0) | 2022.09.22 |
[Python] SQLite DB불러오기 (Select, Fetch) (0) | 2022.09.08 |