是否可以传入自定义参数列表?
更多是出于好奇与现实生活中的用例,但是,例如,我可能希望在让argparse完成工作之前将所有参数转换为小写。
答案 0 :(得分:3)
Yes。只需将您想要的列表传递到parse_args
。
从文档中的示例:
>>> parser.parse_args(['--sum', '7', '-1', '42'])
Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])
答案 1 :(得分:1)
parse_args
会使用sys.argv[1:]
。您可以自己加载sys.argv
并进行修改。如果就地修改,它仍然可以隐式传递。
import sys
import argparse
parser = ...
# modify sys.argv inplace
sys.argv[1:] = [x.lower() for x in sys.argv[1:]]
args = parser.parse_args() # pass it implicitily
# or pass it explicitly
args = parser.parse_args(sys.argv[1:])