○ mysql db 생성 코드
-테스트를 위해 db 생성 코드를 첨부합니다.
CREATE TABLE `vpn` (
`list_num` INT(10) NOT NULL AUTO_INCREMENT,
`datetime` DATETIME NULL DEFAULT NULL,
`srcip` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`dstip` VARCHAR(30) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`inbyte` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
PRIMARY KEY (`list_num`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;
○ csv 파일
-input_filename='D:/work/csvdb1.csv'
-db에 입력하려는 csv파일은 ',' 구분자로 나눠져 있습니다.
○ csv 파일 mysql "vpn" db에 넣기 파이썬 코드
-pip install pymsyql를 하시고, 아래 코드를 복사하여 파이썬 파일을 만들어 주시면 됩니다.
-수정할 곳은 우선적으로 db 연결 계정 및 패스워드, 포트, 데이터베이스명(vpn)을 수정하시면 됩니다.
-input_filename도 알맞게 수정하시구요.
-"#테이블 전체 비우기"에서도 "vpn"이란 db명을 다른 db명으로 수정이 필요할 수 있습니다.
(※ 테이블을 비우지 않을 경우는 삭제)
import pymysql
import csv
mydb = pymysql.connect(
host="localhost",
user="root",
password="비밀번호",
port=3306,
db="testdb"
)
input_filename='D:/work/csvdb1.csv'
def csv2db(csv_filename):
# Get Cursor
dbconn = mydb.cursor()
#테이블 전체 비우기
dbconn.execute("TRUNCATE vpn")
mydb.commit()
# insert 쿼리문
sql = "INSERT INTO vpn (datetime,srcip,dstip,inbyte) values(%s,%s,%s,%s)"
# 파일읽기
f = open(csv_filename, 'r', encoding='euc-kr')
rd = csv.reader(f)
# 첫 번째 행 제외
next(rd, None)
for row in rd:
dbconn.execute(sql, (row[1], row[2],row[3],row[4]))
mydb.commit()
mydb.close()
f.close()
print("OK")
#--------------------------
# Main
#--------------------------
if __name__ == "__main__":
csv2db(input_filename)
○ csv3db_.py 파일 실행하기
-cmd 창에서 csv2db_.py 파일 실행시키고, 모든 루틴이 돌고나서 OK가 나오면 정상적으로 프로그램이 돌아간것입니다.
○ 실행 결과
- 한 행에 4개(시간, srcip, dstip, inbyte)로 이루어진 데이타가 정상적으로 데이터베이스에 입력된것을 확인할 수 있습니다.
'공학속으로 > python' 카테고리의 다른 글
[python] 트위터 크롤링 (0) | 2022.05.26 |
---|---|
[python] 텔레그램에 메세지 및 사진 보내기 (0) | 2022.04.26 |
[python] UTC를 KST(한국시간)로 변경하기 (0) | 2022.04.20 |
[Python] 비정형 스페이스로 분리된 파일 콤마로 분리하기 (0) | 2022.04.07 |
[python] Visual Studio Code의 단축키 (0) | 2021.01.14 |
댓글