Python argaprse可选参数处理

时间:2016-09-06 14:16:48

标签: python command-line-arguments argparse kwargs

所以,我有一个python脚本,用于解析和绘制文本文件中的数据。使用argparse模块完成参数处理。问题是,一些参数是可选的,例如其中一个用于在图上添加文本注释。该参数通过** kwargs发送到绘图功能。我的问题是 - 处理这些可选参数的最pythonic方法是什么?这里有一些伪代码:

import time
import threading
import sys

def non_daemon():
    print('Test non-daemon')
    time.sleep(5)
    #sys.exit() # is this necessary/encouraged?

t = threading.Thread(name='non-daemon', target=non_daemon)
t.start()

print("done")

如果默认情况下未指定选项,则分配无值。它会导致一些问题。什么是pythonic - 以某种方式检查some_function中的'选项'?或者也许在调用some_function之前解析参数?

2 个答案:

答案 0 :(得分:3)

您只需提供一个明确的空列表作为默认列表。

parser.add_argument("-o", "--options", nargs="+", default=[])

答案 1 :(得分:1)

使用get并设置默认值,如果在dict

中找不到该键
def some_function(arguments, **kwargs):
   something = kwargs.get('options', 'Not found')
   return something

或if语句

if 'option' in kwargs:
    pass # do something