python - 带有 2 个日期参数的 argparse
问题描述
我想创建一个程序,在命令行上给出的 2 个日期之间从数据库中选择用户。我有:
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("--date1","-d1",help="Show users between dates",type=str)
group.add_argument("--date2","-d2",help="Show users between dates",type=str)
if args.date1 and args.date2:
DataCalculation.show_users_between_date(args.date1,args.date2)
在我的 DataCalculation 中,我有查询以获取两个日期之间的用户。不幸的是,这个解决方案不起作用,我得到错误:argument --date2/-d2: not allowed with argument --date1/d1
我正在运行如下程序:py main.py -d1 1994-01-01 -d2 1995-12-31
我在想我可以将这 2 个日期拆分为函数列表并只给出 1 个参数,例如:py main.py -d 1994-01-01 1995-12-31
,但这个想法也行不通。有没有一种简单的方法可以使用必须一起给出的 2 个参数?
解决方案
你可以使用
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("--daterange","-dr",help="Show users between dates",type=str)
args = parser.parse_args()
date1, date2 = args.daterange.split()
print(date1)
然后引用你的论点,如
python test.py -dr "1994-01-01 1995-12-31"
上面的代码片段产生:
1994-01-01
推荐阅读
- python-3.x - 与 openpyxl 相同的类名
- android - 使用 API 级别 24 将文件传递给华为平板电脑上的其他应用程序
- javascript - 我尝试编写自己的 Array.prototype.join() 有什么问题?
- java - 使用线程池处理客户端的回显服务器
- apache - Apache 2.4 内部 mod_rewrite 不工作
- database - 重复数据与数据库中的计算数据
- c++ - 指向 sparsepp 键的指针:键的位置是否改变?
- android - How to make the android.widget.Scroller stop scrolling at a specific item index?
- mongodb - MongoDB聚合错误返回错误结果
- arrays - 如果两个道具具有相同的字符串值,则反应渲染 DOM 元素