日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python生成日历_使用python生成ical日历文件——将课程表导入到手机日历

發布時間:2023/12/29 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python生成日历_使用python生成ical日历文件——将课程表导入到手机日历 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 importdatetime,os2

3 classEvent:4 """

5 事件對象6 """

7 def __init__(self,kwargs):8 self.event_data =kwargs9

10 def __turn_to_string__(self):11 self.event_text = "BEGIN:VEVENT\n"

12 for item,data inself.event_data.items():13 item = str(item).replace("_","-")14 if item not in ["ORGANIZER","DTSTART","DTEND"]:15 self.event_text += "%s:%s\n"%(item,data)16 else:17 self.event_text += "%s;%s\n"%(item,data)18 self.event_text += "END:VEVENT\n"

19 returnself.event_text20

21 classCalendar:22 """

23 日歷對象24 """

25 def __init__(self,calendar_name="My Calendar"):26 self.__events__ ={}27 self.__event_id__ =028 self.calendar_name =calendar_name29

30 def add_event(self,**kwargs):31 event =Event(kwargs)32 event_id = self.__event_id__

33 self.__events__[self.__event_id__] =event34 self.__event_id__ += 1

35 returnevent_id36

37 def modify_event(self,event_id,**kwargs):38 for item,data inkwargs.items():39 self.__events__[event_id].event_data[item] =data40

41 defremove_event(self,event_id):42 self.__events__.pop(event_id)43

44 defget_ics_text(self):45 self.__calendar_text__ = """BEGIN:VCALENDAR\nPRODID:-//ZHONG_BAI_REN//APPGENIX-SOFTWARE//\nVERSION:2.0\nCALSCALE:GREGORIAN\nMETHOD:PUBLISH\nX-WR-CALNAME:%s\nX-WR-TIMEZONE:null\n"""%self.calendar_name46 for key,value in self.__events__.items():47 self.__calendar_text__ += value.__turn_to_string__()48 self.__calendar_text__ += "END:VCALENDAR"

49 return self.__calendar_text__

50

51 defsave_as_ics_file(self):52 ics_text =self.get_ics_text()53 open("%s.ics"%self.calendar_name,"w",encoding="utf8").write(ics_text)#使用utf8編碼生成ics文件,否則日歷軟件打開是亂碼54

55 defopen_ics_file(self):56 os.system("%s.ics"%self.calendar_name)57

58 defadd_event(cal, SUMMARY, DTSTART, DTEND, DESCRIPTION, LOCATION):59 """

60 向Calendar日歷對象添加事件的方法61 :param cal: calender日歷實例62 :param SUMMARY: 事件名63 :param DTSTART: 事件開始時間64 :param DTEND: 時間結束時間65 :param DESCRIPTION: 備注66 :param LOCATION: 時間地點67 :return:68 """

69 time_format = "TZID=Asia/Shanghai:{date.year}{date.month:0>2d}{date.day:0>2d}T{date.hour:0>2d}{date.minute:0>2d}00"

70 dt_start = time_format.format(date=DTSTART)71 dt_end = time_format.format(date=DTEND)72 create_time = datetime.datetime.today().strftime("%Y%m%dT%H%M%SZ")73 cal.add_event(74 SUMMARY=SUMMARY,75 ORGANIZER="CN=My Calendar:mailto:nobody@gmail.com",76 DTSTART=dt_start,77 DTEND=dt_end,78 DTSTAMP=create_time,79 UID="{}-11@appgenix-software.com".format(create_time),80 SEQUENCE="0",81 CREATED=create_time,82 DESCRIPTION=DESCRIPTION,83 LAST_MODIFIED=create_time,84 LOCATION=LOCATION,85 STATUS="CONFIRMED",86 TRANSP="OPAQUE"

87 )88

89 if __name__ == '__main__':90 calendar = Calendar(calendar_name="test")91 add_event(calendar,92 SUMMARY="測試",93 DTSTART=datetime.datetime(year=2019,month=2,day=19,hour=21,minute=21,second=00),94 DTEND=datetime.datetime(year=2019,month=2,day=19,hour=21,minute=30,second=00),95 DESCRIPTION="測試事件",96 LOCATION="我也不知道在哪兒")97 print(calendar.get_ics_text())98 calendar.save_as_ics_file()

總結

以上是生活随笔為你收集整理的python生成日历_使用python生成ical日历文件——将课程表导入到手机日历的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。