Skip to main content
 首页 » 编程设计

python之生成要在循环中使用的日期范围

2025年05月04日32dflying

我需要以 mm_dd 格式生成 9 月 17 日到 10 月 18 日之间的日期。我所做的是像这样使用 2 个单独的循环...

9 月 17 日至 30 日数据 # 09_17 至 09_30

for i in range(17, 31): 
    receiver=x.runQuery("copy  dlr_2014_198_bk_todel from 'http://www/sms_sending18.179.67.198_2015_09_"+str(i).zfill(2)+"_utf.csv.gz' CREDENTIALS delimiter '\t' emptyasnull escape gzip") 

10 月 1 日至 18 日数据#10_01 至 10_18

for i in range(1, 19): 
    receiver=x.runQuery("copy  dlr_2014_198_bk_todel from 'http://www/sms_sending18.179.67.198_2015_10_"+str(i).zfill(2)+"_utf.csv.gz' CREDENTIALS delimiter '\t' emptyasnull escape gzip") 

是否可以为此使用单个循环? (日期范围可能是几天或几年)如何动态生成格式为 2015_09_17 的日期,这些日期可以在 for 循环中使用?

请您参考如下方法:

您可以使用 datetime 和 timedelta。循环将开始日期递增一天,直到到达结束日期。

优点:自动处理可变的月份长度。

#!/bin/python 
from datetime import datetime, timedelta 
 
 
start = datetime(2015,9,17) 
end = datetime(2015,10,18) 
step = timedelta(days=1) 
while start <= end: 
    print start.strftime('%Y_%m_%d') 
    start += step