我有一个需要一些命令行输入的python脚本,我使用argparse来解析它们 . 我发现文档有点令人困惑,无法找到检查输入参数格式的方法 . 通过此示例脚本解释了检查格式的含义:
parser.add_argument('-s', "--startdate", help="The Start Date - format YYYY-MM-DD ", required=True)
parser.add_argument('-e', "--enddate", help="The End Date format YYYY-MM-DD (Inclusive)", required=True)
parser.add_argument('-a', "--accountid", type=int, help='Account ID for the account for which data is required (Default: 570)')
parser.add_argument('-o', "--outputpath", help='Directory where output needs to be stored (Default: ' + os.path.dirname(os.path.abspath(__file__)))
我需要检查选项 -s
和 -e
,用户输入的格式为 YYYY-MM-DD
. 在argparse中是否有一个选项,我不知道哪个完成了这个 .
3 回答
按the documentation:
你可以这样做:
然后将其用作
type
:只是为了添加上面的答案,如果你想将它保持为单行,你可以使用lambda函数 . 例如:
旧线程,但问题至少仍然与我相关!
对于通过搜索引擎点击这一点的其他人:在Python 3.7中,你可以使用标准的
.fromisoformat
类方法,而不是重新发明符合ISO-8601标准的日期,例如: