[22.07.15] Python Module
Python 모듈, 패키지, 라이브러리
모듈
- 특정 기능을 하는 코드를 파이썬 파일 단위로 작성한 것
패키지
- 특정 기능과 관련된 여러 모듈의 집합
- 패키지 안에는 또 댜른 서브 패키지를 포함
라이브러리
- 패키지의 집합
파이썬 표준 라이브러리(Python Standard Library)
- 파이썬에 기본적으로 설치된 모듈과 내장 함수
- 파이썬 표준 라이브러리
모듈과 패키지 활용
import module
from module import var, function, Class
from module import *
from package import module
from package.module import var, function, Class
예시
날짜 모듈
import datetime
now = datetime.datetime123.now()
print(now, type(now))
# from datetime import datetime123
# now = datetime.now()
파일
# 'r' : read (읽기 전용)
# 'w' : write (쓰기 전용 - 덮어씀)
# 'a' : append (쓰는데 파일 있으면 이어서 씀)
with open('test.txt', 'w', encoding='utf-8') as f:
f.write('Happy Hacking!\n')
for i in range(1, 6):
f.write(f'{i} 번째!\n')
로또 구현
import random
# 1~45까지의 숫자!
# 그 중에 6개
n = int(input('얼마쓸래? '))
for i in range(n):
numbers = random.sample(range(1, 46), 6)
numbers.sort()
print(numbers)
읽기
# 파일명, 어떤 모드로 열지,
# 인코딩을 설정
with open('students.txt', 'r', encoding='utf-8') as f:
# 텍스트는 string 타입
text = f.read()
print(text, type(text))
# string.split() => list 타입
names = text.split()
cnt = 0
for name in names:
# name : 첫번째 시행 - 김세환
# 언제? 김씨?
if name.startswith('김'):
# if name[0] == '김':
cnt += 1
print(cnt)
readline
with open('students.txt', 'r', encoding='utf-8') as f:
for line in f:
print(line, end='')
# lines = f.readline()
# print(lines, type(lines))
# lines = f.readline()
# print(lines, type(lines))
# lines = f.readline()
# print(lines, type(lines))
# lines = f.readline()
# print(lines, type(lines))
# lines = f.readline()
# print(lines, type(lines))
readlines
with open('students.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
print(lines, type(lines))
JSON
- JSON 는 Douglas Crockford가 널리 퍼뜨린 Javascript 객체 문법을 따르는 문자 기반의 데이터 포맷
- JSON은 문자열 형태로 존재
예시
json
import json
from pprint import pprint
# 파일을 열고,
f = open('stocks.json', 'r', encoding='utf-8')
# JSON을 파이썬 객체 형식으로 한다!
kospi = json.load(f)
samsung = kospi['stocks'][0]
# print(samsung, type(samsung))
# stockName 정보랑, closePrice 정보만 가진 딕셔너리를 만들고 싶어요!
result = {
'stockName': samsung.get('stockName'),
'closePrice': samsung.get('closePrice')
}
print(result)
pprint
pprint
모듈은 임의의 파이썬 데이터 구조를 인터프리터의 입력으로 사용할 수 있는 형태로 “예쁘게 인쇄”할 수 있는 기능을 제공
예시
from pprint import pprint
samsung = {
"stockEndType": "stock",
"itemCode": "005930",
"reutersCode": "005930",
"stockName": "삼성전자",
"sosok": "0",
"closePrice": "58,800",
"compareToPreviousClosePrice": "1,300",
"compareToPreviousPrice": {
"code": "2",
"text": "상승",
"name": "RISING"
}}
pprint(samsung)
print(samsung)