首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将日期范围传递给脚本?

如何将日期范围传递给脚本?
EN

Stack Overflow用户
提问于 2021-01-12 00:46:38
回答 2查看 46关注 0票数 1

我有下面这段代码:

代码语言:javascript
运行
复制
def parse_args():
    """Takes in arguments from command when run

    :return: date
    """
    parser = argparse.ArgumentParser(sys.argv)
    parser.add_argument('-d')
    args = parser.parse_args()
    d_param = args.d

    if d_param is None:
        d_param = datetime.today().date() - BDay(1)
    else:
        d_param = datetime.strptime(d_param, "%Y%m%d")

    d_param = d_param.date()

    return d_param

因此,目前它只接受一个日期参数。例如:script.py -d 20210110,我如何传递日期范围?例如,如果我想让脚本从1月1日运行到1月10日。所以基本上是20210101到20210110。是否可以提供一个日期范围或一个日期的选项?

附言-目前我正在使用脚本中的日期来计算一些字段。

EN

Stack Overflow用户

发布于 2021-01-12 05:35:08

这就是我最后所做的:

代码语言:javascript
运行
复制
    if d_param is None:
        start_date = end_date = (datetime.today().date() - BDay(1)).date()

    else:
        dates = d_param.split('-')

        # User supplied "-d 20170101" argument.
        if len(dates) == 1:
            start_date = end_date = datetime.strptime(dates[0], "%Y%m%d").date()

        # User supplied "-d 20170101-20170131" argument.
        else:
            start_date = datetime.strptime(dates[0], "%Y%m%d").date()
            end_date = datetime.strptime(dates[1], "%Y%m%d").date()

    # Weekdays between start_date and end_date. Does not take holidays
    # into consideration.
    date_range = pd.bdate_range(start_date, end_date)

    # If length is 0, it means there are no weekdays between start_date
    # and end_date.
    if len(date_range) == 0:
        log.error('No weekdays between start date {} and end date {}'
                  .format(start_date, end_date))
        sys.exit(1)
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65671070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档