使用Python的argparse添加复杂的默认值

时间:2016-12-06 01:56:58

标签: python

我使用argparse来解析控制台输入。对于我的一个输入选项,我想添加一个取决于其他选项的默认选项:

parser.add_argument('--job_name')
parser.add_argument('--user_name',
                    default='guest')

我希望用户能够定义job_name,但如果用户没有定义job_name,我希望user_name + datetime.date.today()'guest2016-10-23',(例如argparse)。

是否可以在lambda内执行此操作?也许是通过提供{{1}} ......?

1 个答案:

答案 0 :(得分:3)

我认为这是不可能的,因为在初始化之前不能使用“ args.user_name”。 但是您可以这样做:

import argparse
import datetime

parser = argparse.ArgumentParser()
parser.add_argument('--job_name', default=None)
parser.add_argument('--user_name', default='guest')
args = parser.parse_args()

if args.job_name is None:
    args.job_name = args.user_name + str(datetime.date.today())