我有 3 个问题。
1)。我希望能够使用这个 python 命令行程序而不用担心参数的顺序。我之前使用过 sys.argv 并让我的用户像这样使用这个脚本:
mypyscript.py create indexname http://localhost:9260 clientMap.json
这需要我的用户记住顺序。我想要这样的东西:
mypyscript.py -i indexname -c create -f clientMap.json -u http://localhost:9260
注意我是如何破坏订单的。
2)。我将在程序中使用什么命令行变量作为代码中的条件逻辑?我需要通过 args.command-type 访问它吗?破折号好吗?
3)。只有文件到索引是可选参数。我可以传递给 add_argument 一些 optional = True 参数或其他东西吗?我该如何处理?
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-c","--command-type", help="The command to run against ElasticSearch are one of these: create|delete|status")
parser.add_argument("-i","--index_name", help="Name of ElasticSearch index to run the command against")
parser.add_argument("-u", "--elastic-search-url", help="Base URl of ElasticSearch")
parser.add_argument("-f", "--file_to_index", default = 'false', help="The file name of the index map")
args = parser.parse_args()
print args.elastic_search_url