python - AttributeError:'list'对象没有属性'split'-使用croniter打印下一个crontab计划作业-stdout-Python
问题描述
我需要阅读/etc/crontab
文件的内容。
现在我有这个:
import croniter
import datetime
now = datetime.datetime.now()
def main():
f = open("/etc/crontab","r")
f1 = f.readlines()
cron = croniter.croniter(f1, now)
for x in f1:
cron.get_next(datetime.datetime)
print(x)
if __name__ == "__main__":
main()
我想要的是在下次运行任务时打印,根据我的 crontab 文件中定义的内容,我遵循了这个答案,但是我需要从文件(即 crotab 文件)中实际读取它,然后将其打印到 stdout .
现在它向我抛出了这个:
Traceback (most recent call last):
File "cron.py", line 17, in <module>
main()
File "cron.py", line 11, in main
cron = croniter.croniter(f1, now)
File "/home/user/.virtualenvs/rest_tails2/lib/python3.6/site-packages/croniter/croniter.py", line 92, in __init__
self.expanded, self.nth_weekday_of_month = self.expand(expr_format)
File "/home/user/.virtualenvs/rest_tails2/lib/python3.6/site-packages/croniter/croniter.py", line 464, in expand
expressions = expr_format.split()
AttributeError: 'list' object has no attribute 'split'
对此有什么想法吗?我很新croniter
,也有python-crontab
但还没有使用它。
解决方案
croniter
处理单个 cron 表达式。您应该将它放在循环中,并将其分别应用于每一行:
for x in f1:
cron = croniter.croniter(x, now) # Here!
cron.get_next(datetime.datetime)
print(x)
推荐阅读
- javascript - 使用ejs格式时,js中的Document替换什么
- javascript - 如何将带有选项的选择中的箭头更改为内联 SVG?
- laravel - Laravel - 如何根据数据库中的特定条件隐藏 div
- python - Python seaborn 热图
- c++ - 如何在 C++ 中设置从 RAII 样式智能对象池获取的对象?
- alfresco - 有没有办法将用户重定向到 SmartFolder?
- python - 谁能告诉我为什么 for 循环中的拆分只适用于文件的最后一行?
- java - Tomcat 9.0.34 的 Gradle 插件
- javascript - 第二次调用 promise 将无法解决
- java - intellij 想法:如何调试 java:fx maven 项目?