1. 시간 처리 모듈 (time)
1 import time
2 # 시간戳를 문자열로 변환
3 current_timestamp = time.time()
4 print(current_timestamp) # 시간戳 출력
5 time_tuple = time.localtime(current_timestamp) # 시간 객체로 변환
6 print(time_tuple)
7 formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple) # 포맷팅
8 print(formatted_time)
9 # 문자열 시간을 시간戳로 변환
10 parsed_time = time.strptime("2023-04-05 14:30:00", "%Y-%m-%d %H:%M:%S")
11 print(parsed_time)
12 timestamp_result = time.mktime(parsed_time)
13 print(timestamp_result)
14 # 시간 연산
15 import datetime
16 print(datetime.datetime.now()) # 현재 시간 출력
17 print(datetime.date.fromtimestamp(time.time())) # 시간戳를 날짜로 변환
18 print(datetime.datetime.now() + datetime.timedelta(days=3)) # 3일 후
19 print(datetime.datetime.now() + datetime.timedelta(hours=-2)) # 2시간 전
20 print(datetime.datetime.now() + datetime.timedelta(minutes=45)) # 45분 후
21 current_time = datetime.datetime.now()
22 print(current_time.replace(hour=10, minute=15)) # 시간 대체
2. 랜덤 생성 모듈 (random)
1 import random
2 import string
3 print(random.randint(1, 3)) # 1~3 사이 정수
4 print(random.randrange(1, 4)) # 1~3 범위 생성
5 # 랜덤 문자열 생성
6 char_pool = string.ascii_letters + string.digits
7 random_chars = random.sample(char_pool, 6)
8 print(random_chars)
9 print("".join(random_chars))
3. 파일 처리 모듈 (shutil)
1 import shutil
2 # 파일 복사
3 # shutil.copy("source_file.txt", "dest_file.txt")
4 # 디렉터리 복사
5 # shutil.copytree("source_dir", "dest_dir")
6 # 디렉터리 삭제
7 # shutil.rmtree("target_dir")
8 # 파일 이동
9 # shutil.move("source_path", "dest_path")
10 # 압축 생성
11 # archive_path = shutil.make_archive("backup", "zip", "source_folder")
4. 해시 검증 모듈 (hashlib)
1 import hashlib
2
3 md5_hasher = hashlib.md5()
4 # md5_hasher.update(b"test_data") # 해시 생성
5 # print(md5_hasher.hexdigest())
6
7 # 파일 해시 검증
8 with open("test.txt", "rb") as file:
9 for chunk in iter(lambda: file.read(4096), b""):
10 md5_hasher.update(chunk)
11 print(md5_hasher.hexdigest())
5. 로깅 모듈 (logging)
1 import logging
2 from logging import handlers
3
4 # 기본 로깅 설정
5 logging.basicConfig(
6 filename="app.log",
7 format='%(asctime)s - %(levelname)s: %(message)s',
8 level=logging.INFO
9 )
10 logging.info("애플리케이션 시작")
11
12 # 다중 출력 설정
13 logger = logging.getLogger("app_logger")
14 logger.setLevel(logging.DEBUG)
15
16 # 콘솔 핸들러
17 console_handler = logging.StreamHandler()
18 console_handler.setLevel(logging.DEBUG)
19
20 # 파일 핸들러
21 file_handler = logging.FileHandler("debug.log", encoding="utf-8")
22 file_handler.setLevel(logging.WARNING)
23
24 # 포맷터 설정
25 formatter = logging.Formatter('%(asctime)s - %(filename)s:%(lineno)d - %(message)s')
26 console_handler.setFormatter(formatter)
27 file_handler.setFormatter(formatter)
28
29 logger.addHandler(console_handler)
30 logger.addHandler(file_handler)
31
32 logger.debug("디버깅 정보")
33 logger.warning("경고 메시지")