Python dateutils根据iCalendar格式打印定期规则(请参阅RFC 5545)

Python dateutils根据iCalendar格式打印定期规则(请参阅RFC 5545),python,python-dateutil,rrule,rfc5545,Python,Python Dateutil,Rrule,Rfc5545,我正在尝试将定期规则打印为iCalendar格式指定的字符串(请参阅)。我使用python dateutils,特别是dateutil.rrule来创建定期规则,我想将其打印为字符串,如: "RRULE:FREQ=DAILY;COUNT=5" 有谁能告诉我有没有办法做到这一点 我想我用的是labix dateutils顺便说一句 非常感谢 在python-dateutil包中没有方法或函数可以执行此操作。查看此错误以获取可能有用的修补程序:。这里有一个rrule的子类,它包含两个建议的

我正在尝试将定期规则打印为iCalendar格式指定的字符串(请参阅)。我使用python dateutils,特别是dateutil.rrule来创建定期规则,我想将其打印为字符串,如:

    "RRULE:FREQ=DAILY;COUNT=5"
有谁能告诉我有没有办法做到这一点

我想我用的是labix dateutils顺便说一句


非常感谢

python-dateutil
包中没有方法或函数可以执行此操作。查看此错误以获取可能有用的修补程序:。

这里有一个
rrule
的子类,它包含两个建议的
python-dateutil
修补程序,可启用
rrule
输出。请注意,可能有一些很好的理由表明这些补丁没有被接受,我只在最简单的情况下测试过。不处理折线

有关讨论,请参阅bug跟踪器:

FREQNAMES=['year'、'MONTHLY'、'WEEKLY'、'DAILY'、'HOURLY'、'MINUTELY'、'secondary']
类可转换规则(rrule.rrule):
#“rrule类”的子类,该类提供一个合理的
#方法,输出ical格式的文件。
#结合这些dateutil问题中的修补程序:
#  https://bugs.launchpad.net/dateutil/+bug/943512
#  https://bugs.launchpad.net/dateutil/+bug/943509
_bysecond_internal=False
_byminute_内部=错误
_按小时=假
_bymonth\u internal=False
_bymonthday_内部=错误
_byweekday_internal=False
定义初始化(self,freq,dtstart=None,
间隔=1,wkst=无,计数=无,直到=无,bysetpos=无,
bymonth=None,bymonthday=None,byyearday=None,byeaster=None,
byweekno=None,byweekday=None,
按小时=无,按分钟=无,按秒=无,
缓存=假):
超级(可转换规则,自).\u初始化__(
频率,dtstart=dtstart,
间隔=间隔,wkst=wkst,计数=计数,直到=直到,bysetpos=bysetpos,
bymonth=bymonth,bymonthday=bymonthday,byyearday=byyearday,byeaster=byeaster,
byweekno=byweekno,byweekday=byweekday,
按小时=按小时,按分钟=按分钟,按秒=按秒,
缓存=缓存)
如果(byweekno为无,byyearday为无,bymonthday为无,且
平日为无,复活节为无):
如果freq==rrule.year:
如果不是按月:
self.\u bymonth\u internal=True
self.\u bymonthday\u internal=True
elif freq==rrule.MONTHLY:
self.\u bymonthday\u internal=True
elif freq==rrule.WEEKLY:
self.\u byweekday\u internal=True
#按小时
如果byhour为“无”:
如果频率
尽管这是在问题提出四年后写的,
dateutil
现在有了一个
\uuuu str\uuuu
方法(请参阅),它允许
以这种形式打印其对象:

In [1]: from dateutil.rrule import *

In [2]: my_rrule = rrule(DAILY, count=5)

In [3]: print(my_rrule)
DTSTART:20161202T184513
FREQ=DAILY;COUNT=5

应注意折线
In [1]: from dateutil.rrule import *

In [2]: my_rrule = rrule(DAILY, count=5)

In [3]: print(my_rrule)
DTSTART:20161202T184513
FREQ=DAILY;COUNT=5