python - 遍历除周末以外的日期

标签 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')

我希望 timedelta(1) 循环遍历每个日期,以便输出文件在第一天的格式为 total2012-01-01 并循环直到它创建文件 total2012-06-09。此外,项目的日期参数格式为 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

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

谢谢

最佳答案

使用 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

关于python - 遍历除周末以外的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10984741/

相关文章:

python - 尝试通过selenium python选择输入框,但每次重新加载页面时元素中的 'id'都会发生变化

python - django - 在 templatetag 中显示 OrderedDict

ios - 日期时间的 AFNetworking URL 参数编码 + 和 : sign

Javascript:子对象上的 ForEach

python - 如何(可靠地)在嵌入式( headless )Linux 中读取 USB 条码扫描器?

python - 有没有办法从 python 数组中删除相似的(数字)元素

ruby - Ruby 中 DateTime 和 Time 的区别

datetime - LibreOffice Calc 日期时间快捷方式插入

mysql - 循环或递归 SQL 查询

azure - 使用多级 map 在 terraform 中循环