【问题标题】:Setting Loop with start and end date使用开始和结束日期设置循环
【发布时间】:2015-10-27 23:07:06
【问题描述】:

这是我的一个朋友帮助我编写的代码,用于从不同的测量系统、时间戳和布局中获取文件到 .csv 文件中。 您在 1 天以下的情况下输入时间段或类似的情况,代码在不同的文件和文件夹中查找此时间戳,调整时间戳(不同的时区等)并将所有内容放入一个易于绘制的 .csv 文件中。现在我需要为不同的布局重写这些东西。我设法让一切正常工作,但现在我不想每天手动输入代码:-(,因为我需要连续输入 3 次 --> 才能获得一天将日期写入一个文件,dateFromdateTo 必须相同,并且在 writecsv... 部分中您必须再次输入日期。

代码如下:

from importer import cloudIndices, weatherall, writecsv,averagesolar
from datetime import datetime
from datetime import timedelta

dateFrom = datetime.strptime("2010-06-21", '%Y-%m-%d')
dateTo = datetime.strptime("2010-06-21", '%Y-%m-%d')
....
code 
code
....
writecsv.writefile("data_20100621", header, ciData)

我可以在此处更改哪些内容,以便为例如 2010-06-21 到 2011-06-21 之间的所有数据自动循环

附言如果我在dataFrom 中输入2010-06-212011-06-21dateTo 我会得到一个巨大的简历。包含所有数据的文件.....我认为这将是一个好主意,但它对绘图并不是很好,所以我最终手动输入日复一日,如果你定期这样做也不错2 或 3 天,但现在出现了一个日期,我需要在它上面运行代码:-(

【问题讨论】:

    标签: python-3.x timestamp


    【解决方案1】:

    一般来说你应该使用datetime.datetimedatetime.timedelta,下面是一个例子:

    from datetime import datetime
    from datetime import timedelta
    
    # advance 5 days at a time
    delta = timedelta(days=5)
    
    start = datetime(year=1970, month=1, day=1)
    end = datetime(year=1970, month=2, day=13)
    
    print("Starting from: %s" % str(start))
    while start < end:
        print("advanced to: %s" % str(start))
        start += delta
    print("Finished at: %s" % str(start))
    

    这个小 sn-p 使用 python 提供的工具创建一个开始和结束时间以及一个增量。您可以修改它以满足您的需求或将其应用到您的逻辑中。

    【讨论】:

    • 谢谢,这看起来很棒,还有什么需要转到writecsv 以便创建的数据自动获取该日期?
    • 我不熟悉writecsv,但我猜你想每天生成文件,这意味着像我建议的那样将你的整个代码放在一个循环中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    相关资源
    最近更新 更多