Python 命令行参数不打印
Python commandline argument doesn't print
我正在尝试使用此脚本从命令行参数中收集变量
import requests
import json
import sys, getopt
UNKNOWN = -1
OK = 0
WARNING = 1
CRITICAL = 2
usage = 'usage: python artifactory-move.py -u/--user -p/--password '
def command_line_validate(argv):
try:
opts, args = getopt.getopt(argv, 'u:p', ['user=' ,'password='])
except getopt.GetoptError:
print (usage)
try:
for opt, arg in opts:
if opt in ('-u', '--user'):
try:
user = arg
except:
print ('***user value must be an entered***')
sys.exit(CRITICAL)
elif opt in ('-p', '--password'):
try:
password = arg
except:
print ('***password value must be entered***')
sys.exit(CRITICAL)
else:
print (usage)
try:
isinstance(user, str)
#print 'user level:', user
except:
print ('***user is required***')
print (usage)
sys.exit(CRITICAL)
try:
isinstance(password, str)
#print 'password level:', password
except:
print ('***pass is required***')
print (usage)
sys.exit(CRITICAL)
except:
sys.exit(CRITICAL)
return user, password
argv = sys.argv[1:]
user, password= command_line_validate(argv)
print (user)
print (password)
无法找到它只打印用户的原因,我怀疑这是第一次“尝试”,但我不确定该怎么做。我是 python 的新手,也许我在这里遗漏了一些非常明显的东西
您写道:
opts, args = getopt.getopt(argv, 'u:p', ['user=' ,'password='])
u:p表示:
-u 接受一个参数(因为 ':' 在 u 之后)
-p 不带参数(p 后没有':')
希望对您有所帮助
我正在尝试使用此脚本从命令行参数中收集变量
import requests
import json
import sys, getopt
UNKNOWN = -1
OK = 0
WARNING = 1
CRITICAL = 2
usage = 'usage: python artifactory-move.py -u/--user -p/--password '
def command_line_validate(argv):
try:
opts, args = getopt.getopt(argv, 'u:p', ['user=' ,'password='])
except getopt.GetoptError:
print (usage)
try:
for opt, arg in opts:
if opt in ('-u', '--user'):
try:
user = arg
except:
print ('***user value must be an entered***')
sys.exit(CRITICAL)
elif opt in ('-p', '--password'):
try:
password = arg
except:
print ('***password value must be entered***')
sys.exit(CRITICAL)
else:
print (usage)
try:
isinstance(user, str)
#print 'user level:', user
except:
print ('***user is required***')
print (usage)
sys.exit(CRITICAL)
try:
isinstance(password, str)
#print 'password level:', password
except:
print ('***pass is required***')
print (usage)
sys.exit(CRITICAL)
except:
sys.exit(CRITICAL)
return user, password
argv = sys.argv[1:]
user, password= command_line_validate(argv)
print (user)
print (password)
无法找到它只打印用户的原因,我怀疑这是第一次“尝试”,但我不确定该怎么做。我是 python 的新手,也许我在这里遗漏了一些非常明显的东西
您写道:
opts, args = getopt.getopt(argv, 'u:p', ['user=' ,'password='])
u:p表示:
-u 接受一个参数(因为 ':' 在 u 之后)
-p 不带参数(p 后没有':')
希望对您有所帮助