-
[python] log.text파일 DB에 자동 적재하기LOG 2022. 7. 31. 13:06
많은 로그가 쌓였을 때
이 txt 파일을 DB에 자동으로 적재되는
코드를 만들어보겠습니다.
예를 들어 위와 같은 txt 파일이 있다고 했을 때
366줄이나 되는 데이터를
일일이 DB에 insert하기엔 너무 많습니다.
먼저 데이터베이스에
원하는 테이블과 칼럼들을 만들어 줍니다.
위에서 본 txt 파일은
내용들이 ';'을 기준으로 나뉘며
총 5개의 내용이 기재되있습니다.
이제 코드를 작성해 봅시다!
import sqlite3 conn = sqlite3.connect("c:/data/tag.db") cur = conn.cursor()
사용할 DB를 import해준 다음
좀전에 테이블을 만들어 주었던 DB파일을 연결해 줍니다.
f = open("C:/Users/hyun/Desktop/txt_DB_test/AA.txt", "r") data = f.readlines() lines_cnt = len(data) # 파일 line수 계산
txt 파일을 읽기모드로 불러옵니다.
readlines() 메서드를 이용하여
파일을 한줄 씩 가져와 data변수에 넣습니다.
cnt = 0 for i in data: value = i.rstrip() new_list = value.split(";") sql = ''' INSERT INTO DATA ( LOG_DT, LOG_DATE, NAME, VALUE, MODIFY_DATE) VALUES ('{}', '{}', '{}', '{}', '{}') '''.format(new_list[0], new_list[1], new_list[2], new_list[3], new_list[4]) cnt = cnt + 1 conn.execute(sql)
for문을 이용하겠습니다.
rstrip() 메서드로 문단을 나누고
split() 메서드를 사용하여
세미콜론(;)을 기준으로 문장을 나눠줍니다.
format을 이용해 인덱스 순서대로 insert해 줍니다.
cnt는 for문을 도는 횟수로
한번 돌때 마다 +1을 해줍니다.
if cnt == lines_cnt : conn.commit() else : pass conn.close() f.close()
끝나는 마지막 행(for문을 돈 횟수 = 문단의 갯수)에서 커밋하고
열었던 DB와 파일을 닫아 줍니다.
완성 코드▼
코드를 실행 후 DB를 확인해 봅시다.
366줄 모두 제대로 입력된 것을 확인할 수 있습니다!
'LOG' 카테고리의 다른 글
[python] DB에 log 저장하기 (0) 2022.07.30 [python] logging 모듈 사용하기 (0) 2022.07.30