Programming Language/Python

Python의 time 모듈 활용하기

niconicon 2024. 1. 17. 00:58

 

이 글에서는 Python의 time 모듈에 대해 자세히 알아보겠습니다. time 모듈은 Python에서 시간과 관련된 다양한 기능을 제공하는 중요한 모듈로, 프로그래밍을 할 때 시간 데이터를 다루는 데 필수적입니다. 본문에서는 time 모듈의 주요 기능과 그 사용 예를 비유와 실례를 통해 쉽고 자세하게 설명할 것입니다.

 

1. Time 모듈의 기본 이해

Python의 time 모듈은 시간에 관련된 다양한 함수를 제공합니다. 시간을 측정하고, 지연시키며, 현재 시간을 얻는 등의 기능을 포함합니다. 이를 이해하기 위해, 시간을 측정하는 것을 마라톤에 참가하는 것으로 비유해 볼 수 있습니다. 마라톤에서 시작점과 종점의 시간을 기록하는 것처럼, time 모듈도 프로그램의 시작과 끝에서 시간을 측정할 수 있습니다.

 

2. 주요 함수와 예제

1) time.time()

이 함수는 현재 시간을 Unix 타임스탬프 형태로 반환합니다. Unix 타임스탬프는 1970년 1월 1일 자정(UTC)부터 현재까지의 초 수를 나타냅니다.

import time

current_time = time.time()
print("현재 시간:", current_time)

2) time.sleep()

이 함수는 프로그램을 일정 시간 동안 정지시킵니다. 책을 읽다가 잠시 쉬는 것처럼, 프로그램도 이 함수를 통해 휴식을 취할 수 있습니다. 사용 예는 아래와 같습니다.

import time

print("잠시 멈춥니다.")
time.sleep(5)  # 5초 동안 대기
print("다시 시작합니다.")

3) time.localtime()

이 함수는 현재 시간을 연, 월, 일, 시, 분, 초 형태로 변환해 줍니다. 사진 앨범에서 사진을 찍은 날짜를 확인하는 것과 같이, 이 함수를 사용해 특정 시점의 상세시간 정보를 얻을 수 있습니다. 예시는 다음과 같습니다.

import time

local_time = time.localtime()
print("현재 연도:", local_time.tm_year)
print("현재 월:", local_time.tm_mon)
print("현재 일:", local_time.tm_mday)

 

3. 날짜와 시간의 변환

time 모듈은 localtime() 함수를 통해 초 단위의 시간을 연, 월, 일, 시, 분, 초 형태로 변환할 수 있습니다. 반대로, mktime() 함수는 연, 월, 일, 시, 분, 초 형태의 시간을 초 단위로 변환합니다.

import time

current_time = time.time()
print("현재 시간(초):", current_time)

# 초 단위 시간을 연, 월, 일, 시, 분, 초 형태로 변환
local_time = time.localtime(current_time)
print("현재 시간(현지 시간):", time.strftime("%Y-%m-%d %H:%M:%S", local_time))

# 연, 월, 일, 시, 분, 초 형태의 시간을 초 단위로 변환
timestamp = time.mktime(local_time)
print("타임스탬프:", timestamp)

 

4. 시간의 포맷팅

strftime() 함수는 시간을 문자열로 포맷팅하는 데 사용됩니다. 반면, strptime() 함수는 문자열 형태의 시간을 time 구조체로 변환합니다.

import time

current_time = time.time()
local_time = time.localtime(current_time)

# 시간 포맷팅
formatted_time = time.strftime("%Y년 %m월 %d일 %H시 %M분 %S초", local_time)
print("포맷팅된 시간:", formatted_time)

# 문자열 형태의 시간을 time 구조체로 변환
time_string = "2024-01-16 12:00:00"
parsed_time = time.strptime(time_string, "%Y-%m-%d %H:%M:%S")
print("변환된 시간:", parsed_time)

 

5. 성능 측정

perf_counter()는 높은 정밀도의 타이머로 성능 측정에 적합합니다. 동작을 수행하는데 소요되는 시간을 측정하여 성능측정이 가능합니다.

import time

# 성능 측정
start_time = time.perf_counter()

# 5초 동안 프로그램 지연
print("5초간 대기합니다.")
time.sleep(5)
print("대기가 끝났습니다.")

end_time = time.perf_counter()
print(f"수행 시간: {end_time - start_time}초")

 

6. 마무리

이 글에서는 Python의 time 모듈의 기본적인 사용 방법부터 시작해, 시간을 다루는 데 필요한 다양한 기능들을 살펴보았습니다. 초보자도 쉽게 따라 할 수 있도록 예제 코드를 통해 설명했습니다. time 모듈을 이용하면 시간 데이터의 처리와 변환, 시간 지연과 성능 측정 등 다양한 시간 관련 작업을 수행할 수 있습니다.