如何在argparse python中将文件路径作为命令行Aragement传递

如何在argparse python中将文件路径作为命令行Aragement传递,python,python-2.7,argparse,Python,Python 2.7,Argparse,我需要通过考试 Python test.py -H host -U usr -P pass -L c:\newfolder\sample.sh -R /shell/sample.sh 我收到错误消息要解压缩的值太多 请帮助我实现这一目标 def check_argv(args=None) parser = argparse.argumentParser() parser.add_arugument('-H' , 'host') #Same for all argume

我需要通过考试

 Python test.py -H host -U usr -P pass -L c:\newfolder\sample.sh -R /shell/sample.sh
我收到错误消息
要解压缩的值太多

请帮助我实现这一目标

def check_argv(args=None)
    parser = argparse.argumentParser()
    parser.add_arugument('-H' , 'host')
    #Same for all argument
#---------------------------------


Host, pass, user , local , remote = check_arg(sys.argv[1:])

您可能会收到错误,因为您收集的值小于您的函数元组返回的值。这是一致的

以及使用argparser函数的正确方法:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-H', action="store", dest="host")
parser.add_argument('-U', action="store", dest="usr")

params = parser.parse_args()
在你的代码中,你可以得到这样的参数

# FETCHING ARGUMENT DETAILS
print(params.host, params.usr)
输出:

$python test.py -H hostname -U testuser   
>>>hostname testuser

您可以根据需要继续添加任意数量的值,并以相同的方式将其返回。

我的问题不是打印或如何获取这些值。.当传递Aragement时,它会抛出错误,因为您收集的值比函数元组返回的值多。@VineethSai您应该只保留答案的第二部分,使用
argparse
的正确方法是什么。在OP发布其
check_arrg()
函数的完整代码之前,其他任何内容都是模糊的猜测,无论如何也不会增加太多。好的@brunodesthuilliersHello,你需要输入更多信息,而不是说“所有参数都一样”您应该放置所有参数,因为传递给解析器的某个值可能有问题。请发布
check_argv()
的完整代码。如果您的
check_argv
就只有这些,那么它将返回
None
,这显然与调用语句所期望的5个变量不匹配。您需要以某种方式调用
parse_args
返回这五个值。