是否可以使用argparse但使用sys.argv传入自定义argv而不是它?

时间:2015-07-20 19:18:32

标签: python argparse

是否可以传入自定义参数列表?

更多是出于好奇与现实生活中的用例,但是,例如,我可能希望在让argparse完成工作之前将所有参数转换为小写。

2 个答案:

答案 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:])