안녕하세요! 이번에는 Python에서 모듈을 import할 때 시간을 가변적으로 사용하는 방법을 소개하겠습니다.
문제 상황
이번에 모듈에서 datetime.datetime.today()를 사용해 날짜를 선언해 사용하다가 다음날 어제의 날짜로 코드가 작동하는 문제가 발생했었습니다. 확인해보니 모듈을 import한 시점의 날짜로 고정되어 발생한 문제였는데요. 예를 들어 아래와 같이 모듈을 만들면, 시간이 지나도 날짜가 변하지 않습니다. 이를 해결하려면 어떻게 해야할까요?
# time_module.py
from datetime import datetime
# 현재 시간을 고정하는 방식 (문제 발생 가능)
current_time = datetime.today()
# main.py
from time_module import *
# 현재 시간 호출
print(current_time) # 모듈을 import한 시점의 시간이 출력됨
해결 방법: 시간을 반환하는 함수로 정의하기
이 문제를 해결하기 위해서는 아래 코드와 같이 datetime.today() 호출을 함수화하여, 매번 호출 시 새로운 시간을 반환하도록 해야합니다.
# time_module.py
from datetime import datetime
# 현재 시간을 반환하는 함수
def get_current_time():
return datetime.today()
이제 get_current_time() 함수를 호출할 때마다 현재 시간이 갱신되므로, 언제든지 새로운 시간을 얻을 수 있습니다. 모듈을 import해서 사용할 때는 아래와 같이 사용할 수 있습니다.
# main.py
from time_module import get_current_time
# 현재 시간 호출
print(get_current_time()) # 호출 시점의 시간이 출력됨
이 방식은 매번 함수를 호출하여 현재 시간을 가져오기 때문에, import 시점에 고정되지 않고 가변적인 시간을 사용할 수 있게 됩니다.
모듈에서 datetime.today()를 고정된 값으로 설정해 import 시점의 시간에 고정되는 문제를 해결하는 방법을 알아보았습니다. 데이터 수집을 자동화해서 날짜별로 폴더를 만들어 저장하게 만들었는데 오늘 날짜의 폴더가 없어서 당황했었는데요. 저와 같은 상황인 분들에게 도움이 되셨기를 바랍니다. 오늘도 읽어주셔서 감사합니다!