未分類

祝日データ用Pythonスクリプト


2024年〜2025年の祝日ファイル作成用Pythonスクリプトです。

元のcsiファイルはGoogleカレンダーからインストールしました。


1.csiファイル作成スクリプト

ChatGPTで手順を確認してPythonコードも書いてもらいました。

冒頭の決まり文句だけ追加しないといけないようです。

このスクリプトと同じ場所に祝日データの csiファイルが作成されます。

※注意
・冒頭の決まり文句は手動で追加する必要あり
・祭日も入るので削除する必要があり


※冒頭の決まり文句

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:日本の祝日
X-WR-TIMEZONE:UTC
X-WR-CALDESC:日本の祝日と行事



<Pythonスクリプト>

from icalendar import Calendar, Event
import os

# 入力ファイルと出力ファイルのパス
input_file_path = 'basic.ics'  # 元の .ics ファイル
output_file_path = 'filtered_2024_2025_holidays.ics'  # フィルタ後のファイル

# ファイルが存在するか確認
if os.path.exists(input_file_path):
    # .ics ファイルを開いて解析
    with open(input_file_path, 'r') as file:
        calendar = Calendar.from_ical(file.read())

    # VEVENT コンポーネントを収集
    events = []
    for component in calendar.walk():
        if component.name == "VEVENT":
            # イベントのタイトル(SUMMARY)を取得
            summary = str(component.get('SUMMARY'))

            # 日付を取得
            dtstart = component.get('DTSTART').dt

            # 条件: 祭日を除外し、2024年または2025年の祝日のみ
            if "祭日" not in summary and dtstart.year in (2024, 2025):
                events.append(component)

    # 日付順にソート
    sorted_events = sorted(events, key=lambda event: event.get('DTSTART').dt)

    # 新しいカレンダーを作成
    filtered_calendar = Calendar()
    filtered_calendar.add('version', '2.0')
    filtered_calendar.add('prodid', '-//Filtered Calendar//example.com//')

    # ソート済みイベントをカレンダーに追加
    for event in sorted_events:
        filtered_calendar.add_component(event)

    # フィルタ後のカレンダーを保存
    with open(output_file_path, 'wb') as filtered_file:
        filtered_file.write(filtered_calendar.to_ical())

    print(f"フィルタリング済みの .ics ファイルが保存されました: {output_file_path}")
else:
    print("入力ファイルが見つかりません。")







スポンサーリンク

-未分類

Copyright© さねたにブログ , 2024 All Rights Reserved.