파이썬/모듈

유용한 스탠다드 모듈

코린이도이 2021. 3. 31. 17:24

math

- 기본적인 수학 모듈, 여러 수학적인 함수를 제공

import math

#코사인 함수(모든 삼각함수는 라디안을 사용함)
print(math.cos(0))

#로그 함수
print(math.log10(100))

 

random

- 랜덤 한 숫자를 생성하기 위한 다양한 함수들을 제공

import random

#랜덤한 정수 1 <= N <= 20
print(random.randint(1,20))

#랜덤한 소수 0 <= x <= 1
print(random.uniform(0,1))

 

datetime

- 날짜와 시간을 다루기 위한 다양한 '클래스'를 갖추고 있음, 클래스의 개념을 잘 몰라도 사용하는 데는 문제없음

import datetime

#현재 시간과 날짜
today = datetime.datetime.now()
print(today)

#출력값을 '요일, 월, 일, 연도'로 포매팅
print(today.strftime("%A, %B, %dth, %Y"))

#특정 시간과 날짜
pi_day = datetime.datetime(2020, 3, 14, 13, 6, 15)
print(pi_day)

#두 datetime의 차이
print(today - pi_day)

 

 

os

- operating system, 즉 운영체제의 약자임, os 모듈을 통해서 파이썬으로 운영체제를 조작하거나 운영체제에 대한 정보를 가져올 수 있음

import os

#현재 어떤 계정으로 로그인 돼있는지 확인
print(os.getlogin())

#현재 파일의 디렉토리 확인
print(os.getcwd())

#현재 프로세스 ID 확인
print(os.getpid())

 

os.path

- 파일 경로를 다룰 때 쓰임

import os.path

#프로젝트 디렉토리 경로 '/Users/codeit/PycharmProjects/standard_modules'
#현재 파일 경로 '/Users/codeit/PycharmProjects/standard_modules/main.py'

#주어진 경로를 절대 경로로
print(os.path.abspath('..'))

#주어진 경로를 현재 디렉토리를 기준으로 한 상대 경로로
print(os.path.relpath('/Users/codeit/PycharmProjects'))

#주어진 경로들을 병합
print(os.path.join('/Users/codeit/PycharmProjects', 'standard_modules'))

 

re

- 프로그래밍에서 Regular Expression (RegEx, re, 한국어로는 정규 표현식)은 특정한 규칙/패턴을 가진 문자열을 표현하는 데 사용됨

import re

#알파벳으로 구성된 단어들만 매칭
pattern - re.compile('^[A-Za-z]+$')
print(pattern.match('I'))
print(pattern.match('love'))
print(pattern.match('python3'))

print()

#숫자가 포함된 단어들만 매칭
pattern = re.compile('.*\d+')
print(pattern.match('I'))
print(pattern.match('love'))
print(pattern.match('python3'))

 

pickle

- 파이썬 오브젝트(객체)를 바이트(byte) 형식으로 바꿔서 파일에 저장할 수 있고 저장된 오브젝트를 읽어올 수도 있음

import pickle

#딕셔너리 오브젝트
obj = {'my': 'dictionary'}

#obj를 filename.pickle 파일에 저장
with open('filename.pickle', 'wb') as f:
	pickle.dump(obj, f)

#filename.pickle에 있는 오브젝트를 읽어옴
with open('filename.pickle', 'rb') as f:
	obj = pickle.load(f)

print(obj)

 

json

- pickle과 비슷하지만 오브젝트를 JSON 형식으로 바꿔줌, JSON 형식에 맞는 데이터 (기본 데이터 타입들, 리스트, 딕셔너리)만 바꿀 수 있음

import json

#딕셔너리 오브젝트
obj = {'my': 'dictionary'}

#obj를 filename.json 파일에 저장
with open('filename.json', 'w') as f:
	json.dump(obj, f)

#filename.json에 있는 오브젝트를 읽어옴
with open('filename.json', 'r') as f:
	obj = json.load(f)
    
print(obj)

 

copy

- 파이썬 오브젝트를 복사할 때 쓰임

import copy

#'=' 연산자는 실제로 리스트를 복사하지 않음
#리스트를 복사하려면 슬라이싱을 사용하거나 copy.copy() 함수를 사용해야 함
a = [1, 2, 3]
b = a
c = a[:]
d = copy.copy(a)
a[0] = 4
print(a, b, c, d)

#하지만 오브젝트 안에 오브젝트가 있는 경우 copy.copy() 함수는 가장 바깥에 있는 오브젝트만 복사함
#오브젝트를 재귀적으로 복사하려면 copy.deepcopy() 함수를 사용해야 함
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = copy.copy(a)
d = copy.deepcopy(a)
a[0][0] = 4
print(a, b, c)

 

sqlite3

- 파이썬에서 SQLite 데이터베이스를 사용할 수 있음

import sqlite3

#데이터베이스 연결
conn = sqlite3.connect('example.db')

#SQL 문 실행
c = conn.cursor()
c.execute('''SELECT ... FROM ... WHERE ... ''')

#가져온 데이터를 파이썬에서 사용
rows = c.fetchall()
for row in rows:
	print(row)

#연결 종료
conn.close()