반응형

1. 시험환경

    ˙ python

    ˙ json

    ˙ 공공 데이터 등산로 파일

 

2. 목적

    ˙ geojson 표준 데이터로부터 특정 구간에 해당하는 위경도 데이터를 추출할 수 있다.

 

3. 적용

    ① 공공 데이터 포털로부터 다운 받은 표준 등산로 파일

등산로_48_경상남도.zip
14.09MB

 

    ② 특정 산악-등산로에 해당하는 위경도 데이터를 추출한다.

        - MNTN_CODE : 법정 등산로 코드

        - MNTN_NM : 산악명

        - PMNTN_NM : 등산로명

        - type : Point (점), LineString (선), MultiLineString (다중 선), Polygon (면), MultiPolygon (다중 면)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#-*- coding: utf-8 -*- 
import json
 
geojFile = './등산로_48_경상남도.geojson';
 
with open(geojFile, 'rt', encoding='UTF8'as f:
    data = json.load(f)
 
for feature in data['features']:
    # 등산로 코스
    if feature['properties']['MNTN_CODE'== '457302501':
        print("산악명: {0}, 등산로: {1}, type: {2}".format(
            feature['properties']['MNTN_NM'],
            feature['properties']['PMNTN_NM'],
            feature['geometry']['type']))
        
        for i in range(len(feature['geometry']['coordinates'])):
            print('=== Line ===')
            for j in range(len(feature['geometry']['coordinates'][i])):
                print('위도 : ', feature['geometry']['coordinates'][i][j][0], ', 경도 : ', feature['geometry']['coordinates'][i][j][1])
 
cs

 

4. 결과

    ˙ 특정 산악 등산로 데이터 추출 결과를 확인할 수 있다.

등산로 위경도 데이터

 

 

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

반응형
반응형

1. 시험환경

    ˙ python

 

2. 목적

    ˙ pip freeze 명령어 사용법을 학습한다.

    ˙ package 목록 파일로부터 한번에 설치하는 방법을 학습한다.

 

3. 적용

    ① pip freeze 명령어를 통해 python 프로젝트의 설치 package 목록을 requirements.txt 파일에 기록한다.

        - pip freeze > requirements.txt

 

    ② 기록한 package 목록을 (다른 PC에서) 한번에 설치한다.

        - pip install -r requirements.txt

 

4. 결과

    ˙ 개발환경 구축, 패키지 배포 등의 작업 시 유용하게 사용할 수 있다.

 

 

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

반응형
반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.8

    ˙MS Office Pro 2019

 

2. 목적

    ˙ pandas 라이브러리의 read_excel()를 이용하여 xlsx(엑셀) 파일 load 하는 방법을 학습한다.

 

3. 적용

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

        - 첫번째 행(row) : title

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

엑셀 입력 파일

 

    ② read_excel() 함수를 이용하여 엑셀파일을 load 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pandas as pd
 
if __name__ == '__main__':
    df = pd.read_excel('./input/sample.xlsx', engine='openpyxl', sheet_name='Sheet1')
    print(df)
 
    col1List = df.iloc[:,0].values.tolist()
    col2List = df.iloc[:,1].values.tolist()
    col3List = df.iloc[:,2].values.tolist()
    col4List = df.iloc[:,3].values.tolist()
    print(col1List)
    print(col2List)
    print(col3List)
    print(col4List)
cs

 

4. 결과

    ˙ df과 df을 컬럼 단위로 추출한 결과를 확인한다.

엑셀 파일 출력

 

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

반응형
반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.8

    ˙ MySQL v8.0.23 (x32)

 

2. 목적

    ˙ pymysql 파이썬 라이브러리를 이용하여 DB Connection 생성한다.
    ˙ 생성된 DB Connection을 종료한다.

 

3. 적용

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

        - pip install pymysql

 

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

        - 파일명: mysqlDbQuery.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 pymysql
 
 
def mysqlDbConnection(u, pw, h, p, d):
    try:
        conn = pymysql.connect(user = u, password = pw, host = h, port = p, database = d)
        print("DB Connection Success: {0}".format(h))
    except pymysql.Error as e:
        print("Error connecting to MySQL Platform : {}".format(e))
        sys.exit(1)
 
    return conn
 
 
def mysqlDbClose(_dbConn):
    try:
        _dbConn.close()
        print("DB Close Success")
    except pymysql.Error as e:
        print("Error closing from MySQL Platform")
        sys.exit(1)
cs

 

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

        - "mysqlDbQuery.py"를 import하고 mysqlDbConnection()과 mysqlDbClose()를 호출한다.

1
2
3
4
5
6
7
8
9
import csv
import mysqlDbQuery
 
 
dbConn = mysqlDbQuery.mysqlDbConnection('root''1q2w3e''127.0.0.1'3306'sample')
cursor = dbConn.cursor()
 
cursor.close()
mysqlDbQuery.mysqlDbClose(dbConn)
cs

 

 

4. 결과

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

연결 및 종료 성공

 

 

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

반응형
반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.10

    ˙ mySQL 8.0.23 (x32)

 

2. 목적

    ˙ 파이썬 csv 라이브러리를 이용하여 csv 파일 데이터를 추출한다.

    ˙ 추출한 데이터를 pymysql 라이브러리를 이용하여 mysql DB에 저장한다.

 

3. 적용

    ① csv 데이터 파일 및 구조이다.

sample.csv
0.00MB

 

    ② mysql 스키마 및 테이블을 생성한다.

        - DB 스키마 : sample

        - 테이블명 : example

1
2
3
4
5
6
7
CREATE TABLE `example` (
  `nation` varchar(32) NOT NULL,
  `language` varchar(32) DEFAULT NULL,
  `money` varchar(32) DEFAULT NULL,
  `population` int DEFAULT NULL,
  PRIMARY KEY (`nation`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3
cs

 

    ③ pymysql 파이썬 라이브러리를 이용하여 mysql DB 연결 및 종료 코드를 작성한다.

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 pymysql
 
 
def mysqlDbConnection(u, pw, h, p, d):
    try:
        conn = pymysql.connect(user = u, password = pw, host = h, port = p, database = d)
        print("DB Connection Success: {0}".format(h))
    except pymysql.Error as e:
        print("Error connecting to MySQL Platform : {}".format(e))
        sys.exit(1)
 
    return conn
 
 
def mysqlDbClose(_dbConn):
    try:
        _dbConn.close()
        print("DB Close Success")
    except pymysql.Error as e:
        print("Error closing from MySQL Platform")
        sys.exit(1)
cs

 

    ④ csv 파이썬 라이브러리를 이용하여 파일 데이터를 추출하고, mysql DB에 저장하는 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import csv
import mysqlDbQuery
 
 
dbConn = mysqlDbQuery.mysqlDbConnection('root''1q2w3e''127.0.0.1'3306'sample')
cursor = dbConn.cursor()
 
 
file = open('./sample.csv','r', encoding='UTF8')
fReader = csv.reader(file)
 
for line in fReader:
    query = "INSERT INTO example VALUES ('{0}', '{1}', '{2}', {3})".format(line[0], line[1], line[2], line[3])
    cursor.execute(query)
 
file.close()
 
dbConn.commit() 
cursor.close()
mysqlDbQuery.mysqlDbClose(dbConn)
 
cs

 

4. 결과

    ˙ 프로그램을 실행하여 csv 추출 데이터가 DB에 저장되었는지 확인한다.

    ˙ pandas와 달리 title까지 데이터로 추출되는 것에 주의한다.

 

 

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

반응형
반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.10

 

2. 목적

    ˙ 특정 폴더 안에 포함된 모든 파일 목록을 추출한다.

    ˙ 텍스트 파일 안에 세미콜론(;)으로 구분된 데이터를 읽는다.

 

3. 적용

    ① 폴더 및 파일 구조

        - ./sample/AAA.txt

        - ./sample/BBB.txt

        - ./sample/CCC.txt

sample.zip
0.00MB

 

    ② 특정 폴더에 저장된 모든 파일을 불러와서, 세미콜론(;)으로 구분된 각각의 데이터를 출력하는 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import os
 
dir_path = "./sample/"
fileList = os.listdir(dir_path)
print('fileList:', fileList)
 
for item in fileList:
    token = item.split('.')
    print('token:', token)
 
    file_dir_path = dir_path + item
    print('file_dir_path:', file_dir_path)
 
    file = open(file_dir_path, "r", encoding="utf-8")
    while True:
        line = file.readline()
        if not line:
            break
        cols = line.replace('\x00''').split(';')
        print(cols)
 
    file.close()
 
cs

 

4. 결과

    ˙ 프로그램을 실행하여 특정 폴더안에 저장된 모든 데이터를 파싱하는 것을 확인한다.

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
26
27
28
29
30
fileList: ['AAA.txt''BBB.txt''CCC.txt']
token: ['AAA''txt']
file_dir_path: ./sample/AAA.txt
['A001''173cm''57kg\n']
['A002''174cm''58kg\n']
['A003''175cm''59kg\n']
['A004''176cm''60kg\n']
['A005''177cm''61kg\n']
['A005''178cm''62kg']
token: ['BBB''txt']
file_dir_path: ./sample/BBB.txt
['b001''180cm''70kg\n']
['b002''181cm''71kg\n']
['b003''182cm''72kg\n']
['b004''183cm''73kg\n']
['b005''184cm''74kg\n']
['b006''185cm''75kg\n']
['b007''186cm''76kg\n']
['b008''187cm''77kg']
token: ['CCC''txt']
file_dir_path: ./sample/CCC.txt
['c001''190cm''90kg\n']
['c002''191cm''91kg\n']
['c003''192cm''92kg\n']
['c004''193cm''93kg\n']
['c005''194cm''94kg\n']
['c006''195cm''95kg\n']
['c007''196cm''96kg\n']
['c008''197cm''97kg\n']
['c009''197cm''98kg']
cs

 

 

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

반응형
반응형

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. 결과

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

 

 

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

반응형

+ Recent posts