반응형
728x90
반응형

데이터를 csv 형식 및 json 형식으로 저장하는 예제이다.

1. 리눅스 리다이렉트 방식을 이용한 저장

1
2
3
4
5
6
7
8
9
10
11
12
 
# 리다이렉트 방식으로 csv 저장 방법.
 
# csv 의 Head 를 출력.
print('index,student-number,name')
 
# csv 의 Body 를 출력.
print('0,20111299,유승호')
print(','.join(['1','20111341','김김김']))
print(','.join(['2','24111341','싱상송']))
print(','.join(['3','32214545','오로치마루']))
print(','.join(['4','12313132','아오키지']))
cs

 

위와 같이 출력하는 코드를 작성한 후, 이를 실행할 때 리다이렉트 방법으로 csv로 저장한다. 아래는 그 방법과 실행 결과이다.

2. csv 파이썬 모듈을 이용한 저장.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
# csv 모듈 방식으로 csv 저장 방법.
 
import csv
 
with open('csv-module.csv''w', newline=''as f:
    writer = csv.writer(f)
    writer.writerow(['index','student-number','name'])
    writer.writerows([
        [020111299'유승호'],
        [120111341'김김김'],
        [224111341'싱상송'],
        [332214545'오로치마루'],
        [412313132'아오키지'],
    ])
 
 
cs

 

 

3. json 형식으로 저장

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
# json 저장 방법.
 
import json
 
# json 으로 저장할 데이터들을 list와 dict 형식으로 저장한다.
student_info = [
    {'index'0'student-number'20111299'name''유승호'},
    {'index'1'student-number'20111341'name''김김김'},
    {'index'2'student-number'24111341'name''싱상송'},
    {'index'3'student-number'32214545'name''오로치마루'},
    {'index'4'student-number'12313132'name''아오키지'}
]
 
# 출력
# print(json.dumps(student_info, ensure_ascii=False, indent=2))
 
# 파일 출력
with open('save-json.json','w'as f:
    json.dump(student_info, f)
 
cs

16 라인에서 ensure_ascii 를 False 값을 주게 되면 띄어쓰기를 넣게 되고, indent를 넣으면 들여쓰기를 한다.

다음은 그 결과이다.

 

728x90
반응형
728x90
반응형

xml etree를 이용하여 rss 에서 원하는 정보를 추출하는 예제이다.

기상청에서 제공하는 날씨 데이터 rss를 첨부 파일에 저장했다.

rss.xml
0.09MB

---

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from xml.etree import ElementTree # XML Parser
 
# parse 함수로 읽고 분석 후, ElementTree 객체 생성
tree = ElementTree.parse('./rss.xml')
# 해당 트리의 root 요소 반환
root = tree.getroot()
# 해당 경로에 해당하는 요소들의 갯수를 출력
print(len(root.findall('channel/item/description/body/location')))
# 추출
for loc in root.findall('channel/item/description/body/location'):
    print('지역 [{}] 의 기상청 소식입니다 -------------------'.format(loc.find('city').text))
    for data in loc.findall('data'):
        tm_ef = data.find('tmEf').text
        tmn = data.find('tmn').text
        tmx = data.find('tmx').text
        wf = data.find('wf').text
 
        print(tm_ef, tmn, tmx, wf)
cs

위 코드에 대한 결과이다.

728x90
반응형
728x90
반응형

기본 내장된 url library를 이용하여 간단하게 웹 코드 및 헤더 정보, 상태 코드 읽어오는 예제이다.

------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from urllib.request import urlopen
import sys
 
= urlopen('http://example.com')
 
# <class 'http.client.HTTPResponse'>
print("urlopen의 반환 타입은 : ", type(f))
 
# 소스 코드의 출력
print("f.read() 의 출력은? --- --- --- --- Source Code ")
print(f.read())
 
# 각종 헤더 정보 출력
print("f.getHeader() 의 출력은? --- --- --- --- ")
header_info = f.getheaders();
for info in header_info:
    print(info)
 
# 상태 코드 출력
print("f.status 의 출력은? --- --- --- ---")
print(f.status)
 
 
cs

 

아래는 그 결과이다. 

728x90
반응형
728x90
반응형

오늘은 파이썬 공부하면서 필요했던 과정인 파이썬 설치 및 가상 환경 세팅 방법에 대해서 포스팅한다. 굉장히 간단하다 ㅋ

그런데 파이썬3 설치는 그렇다 치더라도 파이썬 venv는 도대체 무엇인가? 짤막하게 정리해보겠다.

Venv는 Virtual Environment, 즉 가상 환경을 의미한다. 이해하기 쉽게 비유를 해보자면, 물리적인 하나의 큰 시스템 공간을 논리적으로 나누어서

여기부터 여기는 철수 공간으로 해~,
그리고 여기부터 여기는 영희 공간으로 해~
그리고 각자 그 공간 속에서만 행동을 하려무나~ 

좀 더 자세히 그림으로 설명해보겠다. 먼저 기본 전제이다.

철수와 영희는 각각 파이썬으로 이루어진 프로그램 A와 프로그램 B를 실행하려고 한다. 그런데 이 프로그램 A와 B는 a라는 파이썬의 패키지를 사용하지만, 각자 원하는 버전이 다른 것이다. 버전이 다르면 실행이 불가하다는 전제를 둔다. 그런데 철수는 컴퓨터 수업의 오전 반, 영희는 컴퓨터 수업의 오후 반인데 안타깝게도 자리마저 동일한 자리라서 같은 컴퓨터를 사용한다.

이러한 전제와 상황 속에서 가상 환경을 사용하지 않을 경우 어떻게 될까?

철수와 영희는 매일 싸울 것이다. 매 오전/오후 수업마다 서로의 a 패키지를 계속해서 설치했다가 지웠다가를 반복하기 때문이다. 그렇다면 가상 환경을 사용하게 되면 어떻게 될까?

꿀이다. 싸울 필요가 없다. 하나의 공간을 논리적으로 나누어서 철수의 영역, 영희의 영역 서로 다른 버전의 a 패키지를 따로 따로 설치하여 실행도 따로따로 한다. 이 때 실행할 때에는 가상 환경을 사용하지 않을 때와 다르게 약간의 조치가 필요하겠지만 (빨간 ㄱ 표시) 매일 지우고 깔고 싸우고를 반복하는 행위에 비하면 아무 문제가 되지 않는다.

이것이 가상 환경의 개념이며 비유이다.

그렇다면 이번엔 python3 설치 방법과 python3 venv 설치 방법 및 활성화 / 비활성화 방법을 포스팅할 것이다.

1. Python3 설치

sudo apt install python3

이게 끝이다. 겁나 간단하다 ㅋ

2. Python3-venv 설치

sudo apt install python3-venv

이것도 이렇게 끝이다ㅋ 겁나 간단하다ㅋㅋ

3. 가상 환경 세팅

python3 -m venv scrap(가상 공간 이름)

이렇게 간단하다 ㅋㅋ이런거 가지고 포스팅하는 것 조차 민망할 정도다 ㅋ

세팅이 잘 되는지를 확인하기 위해 생성된 가상 공간 이름의 디렉토리로 접근했을 때, 위와 같은 바이너리, 헤더, 라이브러리 등이 존재하면 세팅이 잘 진행된 것이다.

4. 가상 환경 활성화

source 가상 환경 경로/bin/activate

마찬가지다. 이렇게 간단하다. 다만, 활성화가 제대로 되었는지 확인할 때에는 생성한 가상 환경의 이름으로 프롬프트 앞쪽에 뜬다. (사진 왼쪽 하단)

scrap 가상 환경 상태에서 패키지를 설치한다고 하더라도 다른 명의(?)의 가상 환경이나 실제 오리지널 환경(가상 환경 상태가 아닌 오리지널)에서는 설치되어있지 않다. 즉, 가상 환경은 다른 환경에 영향을 끼치지 않는 독립적인 공간이자 시스템이란 것이다. 끝

728x90
반응형

+ Recent posts