【问题标题】:Remove subject from .ics file - python从 .ics 文件中删除主题 - python
【发布时间】:2018-05-29 14:38:07
【问题描述】:

在 .ics 格式的日历方面,我需要您的帮助。我想用python从日历中删除主题约会('SUMMARY:'之后的文本)并将其保存为.ics。我怎样才能做到这一点?下面我从我的 .ics 文件中插入一段文本。

SEQUENCE:0
BEGIN:VALARM
ACTION:DISPLAY
TRIGGER;RELATED=START:-PT5M
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
BEGIN:VEVENT
UID:f468cba2-38bf-4fb1-ace1-1c6e6a9cde91
SUMMARY:
  This is a test text. This is a test text. This is a test text. This is a te
 test text.
LOCATION:calend1\;
ORGANIZER;CN=Kalendarz1:mailto:kalendarz1@nask.pl
DTSTART;TZID="Europe/Warsaw":20180529T123000
DTEND;TZID="Europe/Warsaw":20180529T130000
STATUS:CONFIRMED
CLASS:PUBLIC
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
TRANSP:OPAQUE

【问题讨论】:

标签: python icalendar


【解决方案1】:

您的输入不是有效的 ICS 文件(请注意 END:VEVENT 之前的 START:VEVENTSEQUENCE 在任何对象之外)。因此,您不能使用an ICS parser。根据您获得此文件的位置,以及其使用者是否期望 ICS 或这种损坏的 ICS 相邻格式,您可能需要投资修复该文件。

不过,要打击主题可以简单地使用正则表达式:

import re

with open('test.ics', 'r', encoding='utf-8') as icsf:
    broken_ics = icsf.read()

out = re.sub(r'\nSUMMARY:(?:.*(?:\n )?)*', '', broken_ics)
print(out)

【讨论】:

  • 这个正则表达式就是我要找的。非常感谢您,祝您有美好的一天! :)
猜你喜欢
  • 2021-11-19
  • 2023-04-07
  • 2019-07-18
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 2013-08-06
  • 1970-01-01
  • 2014-12-14
相关资源
最近更新 更多