将 argparse 上的空字符串替换为 None

我正在使用 groovy 来调用 python 类,我默认为 None 空参数,但我发现很多问题也默认为 None null 或空字符串 ('')。

我希望有一些东西argparse可以检查参数是否为 '' 并将其更改为 None 在这种情况下,因此在代码中我不必再检查None'' 只需检查 if is not None


当年话下
浏览 186回答 2
2回答

慕娘9325324

的类型参数ArgumentParser.add_argument()是一个“允许执行任何必要的类型检查和类型转换”的函数。你可以滥用这个:import argparsedef nullable_string(val):    if not val:        return None    return valparser = argparse.ArgumentParser()parser.add_argument('--foo', type=nullable_string)print(parser.parse_args(['--foo', ''])输出:Namespace(foo=None)

三国纷争

将命令行参数指定为 typestr为 default None,例如:parser.add_argument('-j', '--jfile', default=None, type=str)然后,如果用户-j完全省略,那么您将None返回。但是如果用户-j在命令行后面什么都不输入,他们将得到错误参数 -j/--jfile: expected one argument并且他们将不得不提供一个字符串值来解决这个问题。所以你应该总是得到一个None或一个非空的字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python