Я хочу использовать цикл for для печати каждой даты между 2 датами. На самом деле собираемся объединить это с запросом MySQL, чтобы передать дату в сам запрос и в имя файла вывода.
Итак, как я могу изменить это:
sum = 0
for i in range(1,11):
print sum
sum += i
К этому?
InputDate = '2009-01-01'
for i in range('2009-01-01','2009-07-01'):
print InputDate
InputDate += i
Я понимаю, что в правиле есть нечто, выполняющее эту функцию:
a = date(2009, 1, 1)
b = date(2009, 7, 1)
for dt in rrule(DAILY, dtstart=a, until=b):
print dt.strftime("%Y-%m-%d")
Но я ограничен более старой версией python.
Это версия сценария оболочки того, что я пытаюсь сделать, если это поможет уточнить:
while [InputDate <= EndDate]
do
sql="SELECT Date,SUM(CostUsd) FROM DailyStats WHERE Date = '$InputDate' GROUP BY Date"
name=$(mysql -h -sN -u -p -e "$sql" > DateLoop-$InputDate.txt db)
echo "$name"
InputDate=$(( InputDate + 1 ))
done
Так, как я могу сделать это в Python?
Добавление дополнительного вопроса здесь для удобства чтения. К сожалению, я не могу использовать стандартную библиотеку MySQL, так как у нас есть проприетарная установка с множеством экземпляров, работающих параллельно. Единственный способ выполнить запрос этого типа - подключаться к одному экземпляру за раз в командной строке.
в то время как день <= b:
распечатать «Бегущий экстракт за:» день </p>
sql = "SELECT Date, SUM (CostUsd) FROM STATTS d WHERE d.Date =" + day + "GROUP BY Date"
os.system ('mysql -h -sN -u -p -e "+ sql +"> DateLoop- "+ day +" .txt db')
день + = один_день