Я пытаюсь напечатать количество дней в месяце, используя функцию Python calendar.monthrange
.Ошибка при использовании переменной в Python calendar.monthrange
У меня есть сценарий, который проходит через cron 1-го числа каждого месяца и должен возвращать количество дней от предыдущего месяца. Я также использую модуль стрелок, чтобы лучше обрабатывать и форматировать любые вызовы по дате/времени, которые я использую во всех своих сценариях.
Поскольку мне нужно найти количество дней в предыдущем месяце, которое возвращается только один день с даты запуска скрипта, я просто вычитаю 1 один через timedelta.
Вот очень сокращенный вариант моего кода, но это рабочая часть:
import calendar
import arrow
import time
from datetime import date, timedelta
yesterday = date.today() - timedelta(1)
cYfDate = yesterday.strftime('%Y.%m.%d')
cYfDateY = arrow.get(cYfDate).format('YYYY')
cYfDateM = arrow.get(cYfDate).format('M')
print cYfDateY
print cYfDateM
print calendar.monthrange(cYfDateY + ',' + cYfDateM)[1]
Первые две печатные линии работают отлично и показать правильный год & месяц, но третья печать выдает ошибку:
Traceback (most recent call last):
File "/home/pi/SystemChecker.py", line 15, in <module>
print calendar.monthrange(cYfDateY + ',' + cYfDateM)
TypeError: monthrange() takes exactly 2 arguments (1 given)
Не могу понять, почему это говорит мне, что есть только один аргумент, когда там явно есть два.
Ошибка ясна, вам необходимо пройти 2 арг вместо 1 – ettanany
Разве я не получил, что потом : cYfDateY & cYfDateM? – 1cm69
Просто что-то вроде 'calendar.monthrange (cYfDateY, cYfDateM)' – ettanany