데이터베이스(db)/SQLite

[Python] SQLite, CSV 쓰고 읽기, DB에 옮기기

끄적끄적아무거나 2022. 9. 27. 08:48
반응형

 

 

 

 

파이썬 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에 넣을 입력값

 

 

결과>>

csv 파일
sqlite 데이터베이스 값

 

 

위와 같이 정상적으로 Data Base가 작성되었음을 알 수 있습니다.

반응형