Using argparse to parse arguments of form “arg= val”

后端 未结 4 1437
时光说笑
时光说笑 2020-12-14 18:20

I want to use argparse to parse command lines of form \"arg=val\" For example, the usage would be:

script.py conf_dir=/tmp/good_conf

To ach

4条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-14 19:10

    As per the documentation, argparse doesn't natively let you have unprefixed options like that. If you omit the leading -, it assumes you are describing a positional argument and expects it to be provided as:

    python script.py /tmp/good_conf
    

    If you want it to be optional, it needs to be correctly marked as a flag by calling it --conf_dir, and invoking the script like:

    python script.py --conf_dir=/tmp/good_conf
    

    However, to accept name-value pairs, you can implement a custom action. In combination with nargs, such an action could accept an arbitrary number of name-value pairs and store them on the argument parsing result object.

提交回复
热议问题