如何在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
并返回这五个值。