Python 如何每3小时和总共7天迭代for循环
通过上面的代码,我可以循环数小时。任何关于如何循环日期的建议。 或按n天的总小时数计算Python 如何每3小时和总共7天迭代for循环,python,python-2.7,python-datetime,Python,Python 2.7,Python Datetime,通过上面的代码,我可以循环数小时。任何关于如何循环日期的建议。 或按n天的总小时数计算 from datetime import datetime as dt, date, timedelta import time startdate= dt.now() - timedelta(days = 7) enddate= dt.now() - timedelta(days = 1) HourList=[0,3,6,9,12,15,18,21] for hour in HourList:
from datetime import datetime as dt, date, timedelta
import time
startdate= dt.now() - timedelta(days = 7)
enddate= dt.now() - timedelta(days = 1)
HourList=[0,3,6,9,12,15,18,21]
for hour in HourList:
timeFrom = int(time.mktime(dt(startdate.year, startdate.month, startdate.day, hour,0,0,1).timetuple()))
timeTo = int(time.mktime(dt(enddate.year, enddate.month, enddate.day, hour+2,59,59,999).timetuple()))
忘掉那些
mktime
和timetuple
的东西。如果使用datetime.replace()
像这样:
Expected output:
---
first loop
timeFrom --march 01 2020 00:00:00
timeTo --march 01 2020 02:59:59
--second loop
timeFrom --march 01 2020 03:00:00
timeTo --march 01 2020 05:59:59
---third loop
timeFrom --march 01 2020 06:00:00
timeTo --march 01 2020 08:59:59
...
...
..
---lastloop
timeFrom --march 07 2020 21:00:00
timeTo --march 07 2020 23:59:59
从datetime导入datetime作为dt,timedelta
现在=dt.utcnow()
周前=现在时间增量(天=7)
开始日期=一周前。替换(小时=0,分钟=0,秒=0,微秒=0)
enddate=now.replace(小时=0,分钟=0,秒=0,微秒=0)
开始=开始日期
开始<结束日期:
打印(开始)
结束=开始+时间增量(小时=2,分钟=59,秒=59)
列印(完)
打印(“--”)
开始=开始+时间增量(小时=3)
您可以使用schedular包,也可以只使用crontab
from datetime import datetime as dt, timedelta
now = dt.utcnow()
week_ago = now-timedelta(days=7)
startdate = week_ago.replace(hour=0,minute=0,second=0,microsecond=0)
enddate = now.replace(hour=0,minute=0,second=0,microsecond=0)
start = startdate
while start < enddate:
print(start)
end = start+timedelta(hours=2,minutes=59,seconds=59)
print(end)
print("---")
start = start+timedelta(hours=3)