我不知道我怎么会我有这样的用法:怎样才可以有一个使用如下的蟒蛇
Usage: httpclient get [-v] [-h key: value] URL
基本上,现在,我叫我的文件httpclient.py让我可以通过HttpClient的调用它,剩下的就是如下:
def main():
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument("arg1", nargs='?')
parser.add_argument("arg2", nargs='?')
parser.add_argument("-v", nargs='?')
parser.add_argument("-h", '--h', nargs='?', action='append')
args = parser.parse_args()
if args.arg1 == "help" and (args.arg2 == "get" or args.arg2 == "post"):
if args.arg2 == "get":
gethelp()
elif args.arg2 == "post":
posthelp()
elif args.arg1 == "help":
help()
elif args.arg1 == "get":
if args.v:
print(sys.argv[-1])
get(args.v,1,args.h)
else:
get(sys.argv[2],0,args.h)
所以现在如果我做了什么如下命令行:
Py -3 httpclient.py get -v "http://google.com" -h "key: value"
但是,正如你所看到的,url是在-v之后的地方,在任务中它被要求放置在最后,并且只有一个url。
所以每次我写:
Py -3 httpclient.py get -v -h "key: value" "http://google.com"
我得到一个错误:
usage: httpclient.py [-v [V]] [-h [H]] [arg1] [arg2]
httpc.py: error: unrecognized arguments: http://google.com
所以,我怎么可以把网址在我的CMD行参数结束
我不清楚你在问什么,但看起来你应该使用'get'和'post'和'action ='store_true''作为子分析器来处理任何'-v'(详细?)为什么标志出现在URL之前或之后? – jonrsharpe
-v基本上是详细的,如果我们添加'-v'输出将显示我们的获取请求的标题,如果你不把'-v',那么你将只有html响应... – puzzle