使用Python添加复杂的默认值';args解析
我正在使用使用Python添加复杂的默认值';args解析,python,Python,我正在使用argparse解析控制台输入。对于我的一个输入选项,我想添加一个依赖于其他选项的默认选项: parser.add_argument('--job_name') parser.add_argument('--user_name', default='guest') 我希望用户能够定义一个job\u name,但如果用户没有定义,我希望job\u name为user\u name+datetime.date.today(),(例如'guest20
argparse
解析控制台输入。对于我的一个输入选项,我想添加一个依赖于其他选项的默认选项:
parser.add_argument('--job_name')
parser.add_argument('--user_name',
default='guest')
我希望用户能够定义一个job\u name
,但如果用户没有定义,我希望job\u name
为user\u name+datetime.date.today()
,(例如'guest2016-10-23'
)
是否可以在
argparse
中执行此操作?也许通过给出一个lambda
…?我认为这是不可能的,因为在初始化之前不能使用“args.user\u 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())
我认为这是不可能的,因为在初始化之前不能使用“args.user\u 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())
您可以让argparser实例提供的帮助说明这一点,然后在实际执行工作的函数中,如果没有提供默认值,则生成所需的默认值。保持实现与argparser的解耦,以便这两个东西可以彼此独立地重用。我想我可以用这个。我只是想知道
argparse
是否提供了一种方法。谢谢!:)您可以让argparser实例提供的帮助说明这一点,然后在实际执行工作的函数中,如果没有提供默认值,则生成所需的默认值。保持实现与argparser的解耦,以便这两个东西可以彼此独立地重用。我想我可以用这个。我只是想知道argparse
是否提供了一种方法。谢谢!:)