当我们需要在 Python 程序中从命令行中获取参数时,可以使用标准库中的 argparse 模块。在 argparse 模块中,ArgumentParser 类是核心类,用于定义程序需要的参数,并在程序中解析这些参数。ArgumentParser 实例有一个 parse_args() 方法,用于解析命令行参数并返回一个包含解析结果的命名空间对象。但是,如果在解析命令行参数时出现错误,该方法会抛出异常,导致程序无法继续执行。为了避免这种情况,可以使用 parse_known_args() 方法,该方法与 parse_args() 方法类似,但是不会抛出异常,而是忽略未知的参数。
在代码中,我们可以先定义一个函数 get_parser(),用于创建一个 ArgumentParser 对象并定义需要的参数。get_parser() 函数返回的是一个 ArgumentParser 对象,可以通过该对象的 add_argument() 方法来添加需要的参数。在添加参数时,可以指定参数的名称、类型、默认值、帮助信息等。例如:
def get_parser():
parser = argparse.ArgumentParser(description='My Program')
parser.add_argument('--input', type=str, help='input file path', required=True)
parser.add_argument('--output', type=str, help='output file path', default='output.txt')
parser.add_argument('--verbose', action='store_true', help='print verbose output')
return parser
在这个例子中,我们创建了一个名为 parser 的 ArgumentParser 对象,然后使用 add_argument() 方法添加了三个参数:--input、--output 和 --verbose。--input 参数是必需的,需要传入一个字符串类型的值;--output 参数是可选的,默认值为 'output.txt',需要传入一个字符串类型的值;--verbose 参数是可选的,不需要传入值,只需要在命令行中使用 --verbose 标记即可。
在程序中使用 get_parser() 函数获取 ArgumentParser 对象后,我们可以调用该对象的 parse_known_args() 方法来解析命令行参数,并获取解析结果。例如:
args, unknown_args = get_parser().parse_known_args()
parse_known_args() 方法返回两个值:args 和 unknown_args。args 是一个命名空间对象,包含解析出来的参数值;unknown_args 是一个列表,包含未解析的参数。在程序中可以使用 args 对象来获取命令行参数的值,例如 args.input、args.output 和 args.verbose。在程序中也可以使用 unknown_args 列表来处理未知的参数。
3万+

被折叠的 条评论
为什么被折叠?



