반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.8

    ˙ MS Office Pro 2019

    ˙ MariaDB 10.1 (x64)

 

2. 목적

    ˙ pandas 라이브러리를 이용하여 xlsx(엑셀 파일)을 읽어온다.

    ˙ pandas 라이브러리를 이용하여 읽어온 엑셀 파일의 특정 값(열,행)에 접근한다.

    ˙ 읽어온 엑셀 데이터를 MariaDB에 저장한다.

 

3. 적용

    ① pandas로 읽어 올 엑셀 파일(xlsx)을 준비한다.

        - 첫번째 행(row) : title

        - 두번째 행(row) 이후 : 데이터

sample.xlsx
0.01MB

 

    ② 데이터를 저장한 DB 테이블을 생성한다.

        - DB 스키마 : sample

        - 테이블명 : example

1
2
3
4
5
6
7
8
9
CREATE TABLE `example` (
    `nation` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    `language` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    `money` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    `population` BIGINT(20) NULL DEFAULT NULL
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
 
cs

 

    ③ MariaDB Connection 생성 및 종료 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sys
import mariadb
 
 
def mariaDbConnection(u, pw, h, p, d):
    try:
        conn = mariadb.connect(user = u, password = pw, host = h, port = p, database = d)
        print("DB Connection Success: {0}".format(h))
    except mariadb.Error as e:
        print("Error connecting to MariaDB Platform : {}".format(e))
        sys.exit(1)
 
    return conn
 
 
def mariaDbClose(c):
    try:
        c.close()
        print("DB Close Success")
    except mariadb.Error as e:
        print("Error closing from MariaDB Platform")
        sys.exit(1)
 
cs

 

    ④ 엑셀 파일(xlsx)을 읽어서 DB에 저장하는 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import mariadbQuery
import pandas as pd
 
 
dbConn = mariadbQuery.mariaDbConnection('root''1q2w3e'"127.0.0.1"3307'sample')
cur = dbConn.cursor()
 
readData = pd.read_excel("./sample.xlsx")
 
for i in readData.index:
    query = "INSERT INTO example VALUES ('{0}', '{1}', '{2}', {3})".format(readData['Nation'][i], readData['Language'][i], readData['Money'][i], int(readData['Population'][i]))
    cur.execute(query)
 
dbConn.commit()
 
mariadbQuery.mariaDbClose(dbConn)
 
cs

 

4. 결과

    ˙ 프로그램에 의해서 엑셀 데이터가 DB에 저장되었는지 확인한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.8

    ˙ MS Office Pro 2019

 

2. 목적

    ˙ pandas 라이브러리를 이용하여 xlsx(엑셀 파일)을 읽어온다.

    ˙ pandas 라이브러리를 이용하여 읽어온 엑셀 파일의 특정 값(열,행)에 접근한다.

 

3. 적용

    ① pandas로 읽어 올 엑셀 파일(xlsx)을 준비한다.

        - 첫번째 행(row) : title

        - 두번째 행(row) 이후 : 데이터

sample.xlsx
0.01MB

 

    ② pandas 라이브러리를 사용하여 특정 엑셀 파일(xlsx)을 load하는 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
import pandas as pd
 
 
readData = pd.read_excel("./sample.xlsx")
print(readData)
print()
 
for i in readData.index:
    print(i, readData['Nation'][i], readData['Language'][i], readData['Money'][i], readData['Population'][i])
 
cs

 

4. 결과

    ˙ 프로그램을 실행하여 결과를 확인한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.8

    ˙ MariaDB v10.1.48 (win64)

 

2. 목적

    ˙ 파이썬에서 MariaDB와 Connection을 생성한다.
    ˙ 생성된 DB Connection을 종료한다.

 

3. 적용

    ① pip를 이용하여 mariadb 라이브러리를 설치한다.

        - pip install mariadb

 

    ② mariadb 라이브러리를 import하고 connection 생성 및 종료 코드를 작성한다.

        - 파일명: mariadbQuery.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sys
import mariadb
 
 
def mariaDbConnection(u, pw, h, p, d):
    try:
        conn = mariadb.connect(user = u, password = pw, host = h, port = p, database = d)
        print("DB Connection Success: {0}".format(h))
    except mariadb.Error as e:
        print("Error connecting to MariaDB Platform : {}".format(e))
        sys.exit(1)
 
    return conn
 
 
def mariaDbClose(c):
    try:
        c.close()
        print("DB Close Success")
    except mariadb.Error as e:
        print("Error closing from MariaDB Platform")
        sys.exit(1)
cs

 

 

    ③ 테스트 코드를 작성하여 DB Connection 생성 및 종료 동작을 확인한다.

        - "mariaDBQuery.py"를 import하고 mariaDBConnection()과 mariaDbClose()를 호출한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import mariaDbQuery
 
 
### MariaDB Connection Info.
dbUser  = "root"
dbPw    = "1q2w3e"
dbIp    = "127.0.0.1"
dbPort  = 3306
dbName  = "sample"
 
 
dbConn = mariaDbQuery.mariaDbConnection(dbUser, dbPw, dbIp, dbPort, dbName)
mariaDbQuery.mariaDbClose(dbConn)
 
cs

 

 

4. 결과

    ˙ 프로그램을 실행하여 DB 연결 및 종료 동작을 확인한다.

연결 및 종료 성공

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ 파이썬 3.8

 

2. 목적

    ˙ configParser 라이브러리 설정 및 기초 사용법을 학습한다.

    ˙ configParser를 이용하여 설정값을 출력하는 방법을 학습한다.

 

3. 적용

    ① 하드 코딩은 좋은 방법이 아니기 때문에 별도의 설정 정보가 저장된 파일을 생성한다.

        - 파일명 : config.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[DB1]
dbUser  = root1
dbPw    = root1pw
dbIp    = 127.0.0.1
dbPort  = 3306
dbName  = testDB1
 
[DB2]
dbUser  = root2
dbPw    = root2pw
dbIp    = 127.0.0.2
dbPort  = 3307
dbName  = testDB2
 
cs

 

    ② configParser 라이브러리를 Import하고 "config.ini" 파일로 부터 설정 정보를 읽어오는 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import configparser
 
 
def getDbConfig(_PROP):
    properties = configparser.ConfigParser()
    properties.read('./config.ini', encoding="utf-8")
    
    configDb = properties[_PROP]
 
    respCnf = dict()
    respCnf["dbUser"]   = configDb["dbUser"]
    respCnf["dbPw"]     = configDb["dbPw"]
    respCnf["dbIp"]     = configDb["dbIp"]
    respCnf["dbPort"]   = int(configDb["dbPort"])
    respCnf["dbName"]   = configDb["dbName"]
 
    return respCnf
 
 
if __name__ == "__main__":
    confInfo = getDbConfig("DB1")
    print(confInfo)
 
    confInfo = getDbConfig("DB2")
    print(confInfo)
cs

 

4. 결과

    ˙ 프로그램을 실행하여 config 정보를 가져오는지 확인한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ 파이썬 3.8

 

2. 목적

    ˙ logging 라이브러리 사용법을 학습한다.

    ˙ 테스트 코드를 작성하여 log 정보를 남기는지 확인한다.

 

3. 적용

    ① logging 라이브러리를 import하고 초기화 함수를 작성한다.

        - 로그 정보가 기록되는 포맷 형식
        - 로그 파일 저장 경로, suffix 및 로그 백업 파일 생성 시점

        - 로그 기본 레벨 설정 등

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import    logging
import    logging.handlers
 
 
def logging_init():
    FORMAT    = "[%(asctime)s  %(filename)s:%(lineno)s %(funcName)20s() ] %(message)s"
 
    handler    = logging.handlers.TimedRotatingFileHandler(filename="log/info.log", when='midnight')
    handler.setFormatter(logging.Formatter(FORMAT))
    handler.suffix = "%Y-%m-%d" # or anything else that strftime will allow
 
    logger    = logging.getLogger()
    logger.setLevel(logging.INFO)
    logger.addHandler(handler)
 
cs

 

    ② logging 초기화 작업 파일을 import하고, 필요한 부분에 로그 정보를 기록한다.

        - logger.logging.info("로그 데이터 작성")

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sys
import mariadb
import logger
 
 
def mariaDbConnection(_user, _pw, _host, _post, _db):
    try:
        conn = mariadb.connect(user = _user, password = _pw, host = _host, port = _post, database = _db)
        logger.logging.info("DB Connection Success: %s (%s)", _host, _db)
    except mariadb.Error as e:
        logger.logging.info("Error connecting to MariaDB Platform: %s", e)
        sys.exit(1)
    return conn
 
 
def mariaDbClose(_conn):
    try:
        _conn.close()
        logger.logging.info("DB Close Success")
    except mariadb.Error as e:
        logger.logging.info("Error closing to MariaDB Platform: %s", e)
        sys.exit(1)
 
cs

 

4. 결과

    ˙ 설정한대로 로그 파일이 생성되는지 확인한다.

로그 파일 생성 확인

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ Visual Studio Code

    ˙  Python

 

2. 목적

    ˙ Visual Studio Code 최신 버전을 다운 받아 설치한다.

    ˙ Visual Studio Code Extension(확장팩)을 설치한다.

    ˙ Visual Studio Code에서 Python Project를 생성한다.

 

3. 적용

    ① Visual Studio Code 공식 사이트에서 운영체제에 맞는 설치 파일을 다운 받는다.

        - https://code.visualstudio.com/download

 

Download Visual Studio Code - Mac, Linux, Windows

Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications.

code.visualstudio.com

 

    ② 다운로드가 되는 동안 인기있는 확장팩을 소개하고 있다.

        - 나는 Visual Studio Code를 주로 "파이썬 개발용 IDE"로 사용한다.

        - 파이썬은 공식 사이트에서 별도로 다운받아 설치하여야만 한다. (파이썬 컴파일러와 IDE는 구분되는 개념이다.)

 

    ③ 다운 받은 설치 파일을 샐행한다.

 

    ④ 설치 후 프로그램을 실행하면 왼쪽 아이콘 중 Extention을 클릭하여 필요한 확장팩을 추가로 설치한다.

 

    ⑤ <File> → <Open Folder...> 메뉴에서 폴더 단위로 저장된 Python 프로젝트를 Open 한다.

        - 별도의 "프로젝트 생성 절차" 없이 폴더 단위로 Save, Load를 통해 "파이썬 프로젝트"를 저장, 읽기할 수 있다.

 

    ⑥ 파이썬 코드를 작성하고 "<Ctrl> + <F5>" 단축키로 실행한다.

 

4. 결과

    ˙ Visual Studio Code를 통해 작성한 파이썬 코드가 실행되는 것을 확인한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ JDK 17 Win x64

 

2. 목적

    ˙ 윈도우 환경에서 JDK를 설치한다.

    ˙ 설치한 JDK 환경을 설정한다.

 

3. 적용

    ① 오라클 다운로드 센터에서 JDK for Developers를 클릭한다.

        - URL : https://www.oracle.com/java/technologies/downloads/

 

    ② 다운 받은 파일을 실행한다.

 

    ③ 설치를 시작한다.

        - 설치 경로를 변경할 수 있지만, 보통 기본 경로를 사용한다.

 

    ④ 설치 경로를 확인한다.

        - x64 기본 설치 경로 : C:\Program Files\Java\jdk-[버전]

        - x32 기본 설치 경로 : C:\Program Files (x86)\Java\jdk-[버전]


 

    ⑤ 설치한 JDK의 환경 변수 설정을 위해 "시스템 환경 변수 편집" 홈 메뉴를 실행한다.

 

    ⑥ <시스템 속성> 팝업창에서 "환경 변수" 버튼을 클릭한다.

환경 변수 클릭

 

    ⑦ 시스템 변수에서 변수이름을 "JAVA_HOME"으로 지정하고 JDK가 설치된 폴더를 지정한다.

        - 변수 이름 : JAVA_HOME

        - 변수 값 : C:\Program Files\Java\jdk-17.0.2

 

    ⑧ step 8

        - 변수 이름 : CLASSPATH

        - 변수 값 : %JAVA_HOME%\lib

 

    ⑨ Path 변수에 bin 폴더 경로를 추가한다.

        - 변수 이름 : CLASSPATH

        - 변수 값 : %JAVA_HOME%\bin

 

4. 결과

    ˙ 명령어를 실행하여 설치한 java와 javac(컴파일러) 버전을 확인한다.

반응형
반응형

1. 시험환경

    ˙ 윈도우 10

 

2. 목적

    ˙ 윈도우10에서 특정 폴더를 공유하기 위해 설정한다.

    ˙ 동일 네트워크(LAN)에 연결된 모든 PC에서 공유 폴더를 사용할 수 있다.

 

3. 적용

    ① 공유 대상 폴더에서 "우클릭" → 팝업창 → <속성> 클릭한다.

 

    ② 속성창에서 "공유" 버튼을 클릭한다.

 

    ③ 해당 폴더를 "공유할 사람"을 추가하고, "권한"을 설정한다.

        - Everyone : 모든 사람에게 공유

 

    ④ 폴더 공유 설정이 완료되었다.

        - 공유할 대상 폴더에 대한 설정은 완료되었지만, 추가적인 네트워크 설정이 필요하다.

 


 

    ⑤ 윈도우 홈에서 "고급 공유 설정"을 검색하여 "고급 공유 설정 관리" 메뉴를 클릭한다.

 

    ⑥ <개인> 탭에서 "파일 및 프린터 고유 켜기" 항목을 선택한다.

 

    ⑦ <모든 네트워크> 탭에서 "암호 보호 공유 끄기" 항목을 선택한다.

        - 공유 대상 폴더에 접속 가능한 사용자가 별도의 암호 없이 접근할 수 있다.

 

4. 결과

    ˙ 동일 네트워크의 다른 PC에서 공유 폴더에 접속한다.

        - 탐색기 등에서 "IP주소" 입력

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형

+ Recent posts