向python脚本传递参数的问题

向python脚本传递参数的问题,python,Python,我有一个python脚本,我想传递命令行参数。我从和那里得到了一些指导。我没有在执行脚本时弹出任何错误,但是当没有给出命令行参数时,我没有收到预期的错误消息,当给出-h命令行时,我也没有收到print命令。我已经将print命令添加到-I和-s命令行参数中,并且还没有成功地完成任何命令行参数(尽管没有错误),我不知道为什么这不起作用,因为我对Python没有太多经验。如果有人能向我指出这个问题,我将不胜感激 import re import os import sys import getopt

我有一个python脚本,我想传递命令行参数。我从和那里得到了一些指导。我没有在执行脚本时弹出任何错误,但是当没有给出命令行参数时,我没有收到预期的错误消息,当给出-h命令行时,我也没有收到print命令。我已经将print命令添加到-I和-s命令行参数中,并且还没有成功地完成任何命令行参数(尽管没有错误),我不知道为什么这不起作用,因为我对Python没有太多经验。如果有人能向我指出这个问题,我将不胜感激

import re
import os
import sys
import getopt

def main(argv):
   ipaddress = ''
   scac = ''
   try:
      opts, args = getopt.getopt(argv,"hi:s:",["ipaddress=","scac="])
   except getopt.GetoptError:
      print 'test.py -i <ipaddress> -s <scac>'
   sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print 'FedConnectStatus.py -i <iobipaddress> -s <scac>'
         sys.exit()
      elif opt in ("-i", "--ipaddress"):
         ipaddress = arg
      elif opt in ("-s", "--scac"):
         scac = arg
重新导入
导入操作系统
导入系统
导入getopt
def总管(argv):
IP地址=“”
scac=“”
尝试:
opts,args=getopt.getopt(argv,“hi:s:”,[“ipaddress=”,“scac=”)
除getopt.GetoptError外:
打印'test.py-i-s'
系统出口(2)
对于opt,opt中的参数:
如果opt='-h':
打印“FedConnectStatus.py-i-s”
sys.exit()
elif opt-in(“-i”,“--ipaddress”):
ipaddress=arg
elif选择加入(“-s”,“-scac”):
scac=arg
  • 您没有得到帮助,因为您在root上有
    sys.exit
    应该在if块内
如果您未通过任何选项,则opts将清空列表,然后您可以手动检查并执行操作

def main(argv):
    #print argv
    ipaddress = ''
    scac = ''
    try:
        opts, args = getopt.getopt(argv,"hi:s:",["ipaddress=","scac="])
        if not opts: # if no option given 
            print 'usage test.py -i <ipaddress> -s <scac>'
            sys.exit(2)
    except getopt.GetoptError:
        print 'test.py -i <ipaddress> -s <scac>'
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print 'FedConnectStatus.py -i <iobipaddress> -s <scac>'
            sys.exit() # it should be on level of if
        elif opt in ("-i", "--ipaddress"):
            ipaddress = arg
        elif opt in ("-s", "--scac"):
            scac = arg

if __name__ == "__main__":
   main(sys.argv[1:])


#  $ python cmderr.py -h
#  FedConnectStatus.py -i <iobipaddress> -s <scac>
def主管道(argv):
#打印argv
IP地址=“”
scac=“”
尝试:
opts,args=getopt.getopt(argv,“hi:s:”,[“ipaddress=”,“scac=”)
如果未选择:#如果未给出选项
打印“usage test.py-i-s”
系统出口(2)
除getopt.GetoptError外:
打印'test.py-i-s'
系统出口(2)
对于opt,opt中的参数:
如果opt='-h':
打印“FedConnectStatus.py-i-s”
sys.exit()
elif opt-in(“-i”,“--ipaddress”):
ipaddress=arg
elif选择加入(“-s”,“-scac”):
scac=arg
如果名称=“\uuuuu main\uuuuuuuu”:
main(sys.argv[1:])
#$python cmderr.py-h
#FedConnectStatus.py-i-s

what is error MSG请提供一个示例输入和程序行为。