Python命令行参数不打印

2024-06-02 07:40:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用这个脚本从命令行参数中收集变量

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新手,也许我遗漏了一些非常明显的东西


Tags: inimportsysexitargusagepasswordprint
1条回答
网友
1楼 · 发布于 2024-06-02 07:40:56

你写道:

opts, args = getopt.getopt(argv, 'u:p', ['user=' ,'password='])

u:p的意思是:

-u接受一个参数(因为u后面有“:”)
-p不带参数(p后面的no':'p)

希望这对你有帮助

相关问题 更多 >