我有以下代码正好包含三个参数。用户需要提供所有三个参数。这是运行脚本时需要在命令行中提供的参数顺序。 浏览器 用户名 密码。
import argparse
import sys
from collections import OrderedDict
parser = argparse.ArgumentParser()
parser.add_argument('browser', default='chrome', help='This is the browser type, browser type:chrome,'
'firefox or ie')
parser.add_argument('username', help='This is the username')
parser.add_argument('password', help='This is the password')
args = parser.parse_args()
parser.print_help()
print(args.browser)
browsers = ['chrome', 'firefox', 'ie']
if args.browser not in browsers:
print("invalid browser")
如果用户忘记指定浏览器参数,而仅使用两个参数(用户名和密码)运行脚本,则脚本应引发错误,提示缺少浏览器参数,但在我的情况下,脚本引发错误,提示密码丢失。如何指定第一个位置应始终为浏览器类型>
Output :
C:\>python Argparse.py user pass
usage: Argparse.py [-h] browser username password
Argparse.py: error: the following arguments are required: password
任何建议都会有所帮助。谢谢。
答案 0 :(得分:0)
您可能需要告诉parser
,第一个参数browser
是可选的(用-
和--
前缀表示),否则它期望第一个必需的位置参数成为browser
参数。
通过为browser
或-
加上前缀来使--
为可选:
parser.add_argument('-b', '--browser', default='chrome', help='This is the browser type, browser type:chrome,'
'firefox or ie')
运行:
$ python Argparse.py user pass
chrome
user
pass