Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用-argparse指定参数时运行特定函数_Python_Python 3.x_Arguments_Argparse - Fatal编程技术网

Python 使用-argparse指定参数时运行特定函数

Python 使用-argparse指定参数时运行特定函数,python,python-3.x,arguments,argparse,Python,Python 3.x,Arguments,Argparse,大家好,所以我读了所有“类似”的帖子,并没有找到一个明确的答案。将参数映射到我定义的特定函数的最简单方法是什么 parser = argparse.ArgumentParser(" ") parser.add_argument("-u", "--url") parser.add_argument("-i", "--ip") parser.add_argument("-a", "--action") args = parser.parse_args() def func1(ip): d

大家好,所以我读了所有“类似”的帖子,并没有找到一个明确的答案。将参数映射到我定义的特定函数的最简单方法是什么

parser = argparse.ArgumentParser(" ")

parser.add_argument("-u", "--url")
parser.add_argument("-i", "--ip")
parser.add_argument("-a", "--action")
args = parser.parse_args()

def func1(ip):
    do something
func1(ip)

def func2(url):
    do something
func1(url)

def func3(action):
    do something
func1(action)
我的函数与参数一起正常工作,但是如果使用-u标志,我不希望说func2&func3运行,或者我只希望func3在使用-a时运行。用外行的话说,这可能吗?其他答案一点也不清楚


谢谢

您可以使用
args.\u get\u kwargs()
函数查看如下值和参数

import argparse
parser = argparse.ArgumentParser(" ")

parser.add_argument("-u", "--url")
parser.add_argument("-i", "--ip")
parser.add_argument("-a", "--action")
args = parser.parse_args()

arg_dict = dict(args._get_kwargs())

def func1(ip):
    do something

def func2(url):
    do something

def func3(action):
    do something

arg_func_dict = {'ip': func1, 'url': func2, 'action': func3}

for arg, value in arg_dict.items():
    if value != None:
        arg_func_dict[arg](value)

您可以使用
args.\u get\u kwargs()
函数查看如下值和参数

import argparse
parser = argparse.ArgumentParser(" ")

parser.add_argument("-u", "--url")
parser.add_argument("-i", "--ip")
parser.add_argument("-a", "--action")
args = parser.parse_args()

arg_dict = dict(args._get_kwargs())

def func1(ip):
    do something

def func2(url):
    do something

def func3(action):
    do something

arg_func_dict = {'ip': func1, 'url': func2, 'action': func3}

for arg, value in arg_dict.items():
    if value != None:
        arg_func_dict[arg](value)
对于其他arg,也是如此。希望你明白我的意思


对于其他arg,也是如此。希望您能理解。

args.url
如果未提供该参数,则将为
None
,否则为用户提供的字符串。在代码中添加
print(args)
语句,以便更清楚地了解解析器的作用。
args.url
如果未提供该参数,则为
None
,否则为用户提供的字符串。在代码中添加一个
print(args)
语句,以更清楚地了解解析器的功能。简短、简单、准确。非常感谢。简短、简单、准确。非常感谢。