循环通过除周末以外的日期

Rtr*_*der 11 python datetime loops

所以我有一个脚本,它具有不同功能的日期参数,我希望它循环01-01-201206-09-2012不包括周末.我试图找出一种方法,我可以使用时间增量,因为我的脚本输出的文件具有文件名中使用的日期,例如:

items = (functions.getItems(item,date)
    print items
    test = sum(abs(l[-1]) for l in items)
    total = open('total' +str(datetime.today- datetime.timedelta(1)),'a')
Run Code Online (Sandbox Code Playgroud)

我希望timedelta(1)遍历每个日期,以便输出文件具有total2012-01-01第一天的格式并循环直到它创建文件total2012-06-09.item的日期参数的格式也是MM-DD-YYYY

我以为我可以这样做:

sd = 01-01-2012
ed = 06-09-2012
delta = datetime.timedelta(days=1)
diff = 0
while sd != ed
    # do functions 
    # (have output files (datetime.today - datetime.delta(diff))
    diff +=1
    sd+=delta
Run Code Online (Sandbox Code Playgroud)

所以基本上我只想弄清楚如何循环使用函数开始01-01-2012并结束06-10-2012排除周末.我无法弄清楚如何排除周末以及如何让它以正确的顺序循环

谢谢

bra*_*zzi 16

使用该datetime.weekday()方法.它返回0到6之间的值,与工作日相关.星期六值为5,星期日值为6; 因此,如果在出现这些值时跳过操作,则跳过周末:

start = datetime(2012, 1, 1)
end = datetime(2012, 10, 6)
delta = timedelta(days=1)
d = start
diff = 0
weekend = set([5, 6])
while d <= end:
    if d.weekday() not in weekend:
        diff += 1
    d += delta
Run Code Online (Sandbox Code Playgroud)

  • @PriyanRockZ您可能将其导入为`import datetime`.尝试使用`from datetime import datetime`代替. (2认同)