1 minute read

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

  • JSONDouglas 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)

Updated: