코딩/PYTHON

[PYTHON/파이썬] 텍스트 파일 DB(Maria)저장

또 뭘 잘못 코딩했을까 2021. 7. 5. 22:10
반응형

파이썬을 공부하다 텍스트(text)파일로 디비에 데이터를 입력해보기로 했다.

 

데이터는 행안부 도로명주소 사이트에서 가져왔다.

먼저, 다운받은 파일을 확인하고 컬럼 수를 계산하여 아래와 같이 테이블을 구성했다.

(가장 아래 적재일자는 데이터 입력 시간을 확인하기 위해 추가함)

 

도로명주소 레이아웃

소스코드는 아래와 같다.

for문으로 insert구문을 생성하여, 데이터를 삽입한다.

 

import pymysql # pymysql 모듈 임포트

f = open("파일경로", "r") # 파일오픈
data = f.readlines() # 내용 읽어 오기 (리스트로 읽어온다 - reaplce및 개행문자 처리를 위함)
lines_cnt = len(data) # 파일 라인수 계산(text)
new_list = [] # 리스트 초기화

conn = pymysql.connect(host='127.0.0.1', user='유저명', password = '유저명', db = 'ci_dev', charset='utf8') # mysql 접속정보
cur = conn.cursor() # 커서 오픈
cnt = 0 # for문 횟수 출력

# 데이터 인서트 반복문
for i in data :
    value = i.rstrip()                  # 문자열로 반환, 개행 문자 처리
    new_list = value.split("|")         # 구분자("|") 기준으로 리스트화
    # NEW_JUSO 인서트
    sql = "INSERT INTO CI_DEV.NEW_JUSO VALUE ('"+new_list[0]+"','"+new_list[1]+"','"+new_list[2]+"','"+new_list[3]+"','"+new_list[4]+"','"+new_list[5]+"','"+new_list[6]+"','"+new_list[7]+"','"+new_list[8]+"','"+new_list[9]+"','"+new_list[10]+"','"+new_list[11]+"','"+new_list[12]+"','"+new_list[13]+"','"+new_list[14]+"','"+new_list[15]+"','"+new_list[16]+"', now());"
    
    cnt = cnt + 1
    cur.execute(sql) # sql 실행

    if cnt % 10000 == 0 : # 10000 행마다 커밋
        conn.commit()
    elif cnt == lines_cnt  : # 마지막 남은 행 커밋
        conn.commit()
    else :
        pass

conn.close() # 세션 닫기
f.close() # 파일 닫기

 

 

반응형

'코딩 > PYTHON' 카테고리의 다른 글

[PYTHON/파이썬] 요기요 음식점 크롤링하기  (3) 2021.07.08