ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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줄 모두 제대로 입력된 것을 확인할 수 있습니다!

     

     

     

     

     

     

     

     

     

     

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

    'LOG' 카테고리의 다른 글

    [python] DB에 log 저장하기  (0) 2022.07.30
    [python] logging 모듈 사용하기  (0) 2022.07.30
Designed by Tistory.