Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 holidays 라이브러리 완벽 가이드: 공휴일 조회 및 판별 방법

파이썬 holidays 라이브러리란?

이 튜토리얼에서는 holidays 라이브러리에 대해 알아보겠습니다. holidays 라이브러리는 특정 날짜가 여러 국가의 공휴일인지 여부를 손쉽게 판별할 수 있도록 도와주는 파이썬 패키지입니다. 참고로 이 라이브러리를 통해 조회할 수 있는 정보는 공휴일(public holidays)로 한정됩니다.

라이브러리 설치

먼저 아래 명령어를 실행해 모듈을 설치합니다.

pip install holidays

설치가 완료되면 다음 단계를 따라 공휴일 정보를 조회할 수 있습니다. 예시로 2020년 인도의 공휴일 목록을 가져오는 과정을 살펴보겠습니다. 아래 단계를 따르면 2020년 인도의 전체 공휴일 목록을 얻을 수 있습니다.

  • holidays 모듈을 임포트합니다.
  • holidays.India()를 인스턴스화하고, 키워드 인자 years에 2020을 전달합니다.
  • 날짜를 키로 하는 공휴일 딕셔너리가 반환됩니다.
  • 딕셔너리 항목을 순회하며 출력합니다.

각국의 국가 코드는 holidays 라이브러리 공식 문서에서 확인할 수 있습니다.

예제 1: 특정 연도의 모든 공휴일 조회

아래 코드로 해당 연도의 모든 공휴일을 가져올 수 있습니다.

# importing holidays module
import holidays
# getting India holidays
india_holidays = holidays.India(years=2020)
# iterating over the holidays
for date, occasion in india_holidays.items():
    # printing date and occasion
    print(f'{date} - {occasion}')

실행 결과

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

2020-01-14 - Makar Sankranti / Pongal
2020-01-26 - Republic Day
2020-08-15 - Independence Day
2020-10-02 - Gandhi Jayanti
2020-05-01 - Labour Day
2020-12-25 - Christmas

이와 같은 방식으로 라이브러리가 지원하는 어떤 국가의 공휴일도 조회할 수 있습니다. 국가 클래스만 바꿔서 코드를 수정하면 됩니다. 다음으로, 특정 날짜가 어떤 공휴일인지 확인하는 방법을 알아보겠습니다.

예제 2: 특정 날짜의 공휴일 이름 확인

# importing holidays module
import holidays
# getting India holidays
india_holidays = holidays.India()
# occasion on 15-08-2020
print(f"Occasion on 15-08-2020: {india_holidays.get('15-08-2020')}")

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Occasion on 15-08-2020: Independence Day

예제 3: 특정 날짜가 공휴일인지 판별

get() 메서드의 반환값을 활용하면 특정 날짜가 공휴일인지 아닌지도 간단히 확인할 수 있습니다.

# importing holidays module
import holidays
# getting India holidays
india_holidays = holidays.India()
# holiday date
date_one = '15-08-2020'
date_two = '16-08-2020'
print(f"Is it holiday on {date_one}: {india_holidays.get(date_one) != None}")
print(f"Is it holiday on {date_two}: {india_holidays.get(date_two) != None}")

실행 결과

위 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Is it holiday on 15-08-2020: True
Is it holiday on 16-08-2020: False

마무리

이처럼 holidays 라이브러리를 활용하면 전 세계 다양한 국가의 공휴일을 단 몇 줄의 코드로 손쉽게 조회하고 판별할 수 있습니다. 튜토리얼 내용 중 궁금한 점이 있다면 댓글로 남겨주세요.