Python에서의 모듈은 코드를 그룹화해서 정리한 단위를 뜻합니다.
모듈은 함수, 클래스, 변수, 실행 가능한 코드 등을 포함할 수 있으며, 이것들을 하나의 파일에 담에 다른 스크립트에 적용할 수 있습니다.
모듈을 사용하려면 import
문을 사용하여 모듈을 로드합니다.
import math
또한, from
키워드를 사용하여 모듈의 특정 부분만을 가져올 수 있습니다.
from math import sqrt
Python의 모듈 중 주요 명령어들에 대해 설명드리겠습니다. 아래의 모듈들을 자주 사용되는 것들입니다.
이는 수학적 연산을 위한 함수들을 제공합니다.
함수 및 클래스 | 역할 |
---|---|
math.sqrt(x): | x의 제곱근을 반환 |
math.sin(x) | x의 사인 값을 반환 |
math.cos(x) | x의 코사인 값을 반환 |
math.log(x, base) | x의 로그 값을 반환 |
예시
import math
print(math.sqrt(16)) # 제곱근 계산
# 출력 : 4
Python 인터프리터와 상호작용하는 데 필요한 함수 및 변수들을 제공합니다.
함수 및 클래스 | 역할 |
---|---|
sys.argv | 명령줄 인수 리스트를 반환 |
sys.exit() | 인터프리터를 종료 |
sys.path | 모듈을 찾는 경로의 리스트 |
sys.version | 설치된 Python의 버전 정보를 문자열로 반환 |
예시
import sys
print(sys.version) # 출력 : 3.10.12 (자신이 설치한 버전이 나옴)
운영체제 상호작용하는 데 필요한 기능을 제공합니다.
함수 및 클래스 | 역할 |
---|---|
os.getcwd() | 현재 작업 디렉토리를 반환 |
os.chdir(path) | 작업 디렉토리를 변경 |
os.listdir(path) | 지정된 경로의 파일 및 디렉토리 목록을 반환 |
os.mkdir(path) | 새 디렉토리를 생성 |
예시
import os
print(os.getcwd()) # 현재 작업 디렉토리 출력
파일 처리 및 스트림 처리를 위한 기능 제공합니다.
함수 및 클래스 | 역할 |
---|---|
io.StringIO() | 문자열 데이터에 대한 파일과 같은 객체를 생성 |
io.BytesIO() | 바이트 데이터에 대한 파일과 같은 객체를 생성 |
예시
import io
s = io.StringIO("Hello World")
print(s.read()) # 출력 : Hello World
JSON 데이터를 읽고 쓰는 데 사용됩니다.
함수 및 클래스 | 역할 |
---|---|
json.dumps(obj) | 객체를 JSON 형식의 문자열로 변환 |
json.loads(s) | JSON 문자열을 파이썬 객체로 변환 |
예시
import json
data = {'name': 'John', 'age': 30}
json_str = json.dumps(data)
print(json_str) # 출력 : {"name": "John", "age": 30}
날짜와 시간을 처리하기 위한 클래스와 함수들을 제공합니다.
함수 및 클래스 | 역할 |
---|---|
datetime.datetime.now() | 현재 날짜와 시간을 반환 |
datetime.date.today() | 오늘의 날짜를 반환 |
datetime.timedelta(days) | 지정된 일수만큼의 시간 차를 나타내는 객체를 생성 |
예시
from datetime import datetime, timedelta
today = datetime.now()
ten_days_later = today + timedelta(days=10)
print("오늘 날짜:", today.strftime("%Y-%m-%d")) # 출력 : 오늘 날짜: 2024-04-22
print("10일 후:", ten_days_later.strftime("%Y-%m-%d")) # 출력 : 10일 후: 2024-05-02
난수를 생성하는 다양한 함수와 클래스를 제공합니다.
함수 및 클래스 | 역할 |
---|---|
random.random() | 0과 1 사이의 랜덤 실수를 반환 |
random.randint(a, b) | a와 b 사이의 랜덤 정수를 반환 |
예시
import random
print(random.randint(1, 10)) # 1과 10 사이의 랜덤 정수 생성
스레드 기반 병렬 처리를 위한 도구를 제공합니다.
함수 및 클래스 | 역할 |
---|---|
threading.Thread(target) | 새로운 스레드를 생성 |
thread.start() | 스레드를 시작 |
thread.join() | 스레드가 종료될 때까지 대기 |
예시
import threading
def print_number():
for i in range(5):
print(i)
t = threading.Thread(target=print_number)
t.start()
t.join()
위의 코드는 코드가 끝날 때까지 대기했다가 코드가 다 돌아간 후 출력이 뜹니다.
파이썬 객체 직렬화와 역직렬화를 위한 도구를 제공합니다.
함수 및 클래스 | 역할 |
---|---|
pickle.dumps(obj) | 객체를 직렬화 |
pickle.loads(data) | 직렬화된 데이터를 객체로 역직렬화 |
import pickle
data = {'key': 'value'}
serialized = pickle.dumps(data) # 직렬화
new_data = pickle.loads(serialized) # 역직렬화
print(new_data) # 출력 : {'key': 'value'}
직렬화 : 파이썬 객체를 바이트 스트림으로 변환하는 과정
역직렬화 : 저장되었거나 전송받은 바이트 스트림을 다시 원래의 파이썬 객체로 복원하는 작업
바이트 스트림 : 연속적인 바이트들의 시퀀스. 바이트 스트림은 파일에 저장하거나 네트워크를 통해 다른 컴퓨터로 전송
Python에는 이 외에도 많은 모듈이 있습니다. 전체 목록을 보고 싶다면 Python 공식 문서를 참조하거나, Python 환경에서 help('modules') 명령을 실행하여 확인할 수 있습니다.