argparse:动态使用为后面的参数选择的早期参数的值

argparse: Dynamically use the value chosen for earlier argument for later argument

是否可以将一个参数用于后面的参数?

from argparse import ArgumentParser

def get_args():
    parser = ArgumentParser(description="Data Generator")
    parser.add_argument('--name', required=True, type=str, help='Pick one: x, y, z')
    parser.add_argument('--save_path', type=str, default='C:/Users/User1/Desktop/', help='The save path')
    args = parser.parse_args()
    return args

例如,我想稍后使用用户在 --name 中包含的值并自动添加到 --save_path 值上。我该怎么做?

args 只不过是一个 simple container object,它将其值作为属性保存。您可以在返回之前修改它。

鉴于namesave_path似乎是目录或文件名,您可以使用os.path.joinname添加到save_path

import os.path

# ...

def get_args():
    # ...
    args = parser.parse_args()
    args.save_path = os.path.join(args.save_path, args.name)
    return args