AttributeError: у объекта 'list' нет атрибута 'split' - печать следующего запланированного задания crontab с помощью croniter - stdout - Python - PullRequest
0 голосов
/ 02 декабря 2018

Мне нужно прочитать содержимое файла /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-файлом), а затем распечатать его на стандартный вывод.

Прямо сейчас это вызывает у меня следующее:

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, но еще не использовал его.

1 Ответ

0 голосов
/ 02 декабря 2018

croniter обрабатывает одно выражение cron.Он должен быть внутри цикла, и применять его к каждой строке отдельно:

for x in f1:
    cron = croniter.croniter(x, now) # Here!
    cron.get_next(datetime.datetime)
    print(x)
...