如何在python中设置可选的输入参数

时间:2013-10-29 05:40:01

标签: python parameters

我有以下代码片段,我正在检查第一个参数并运行以下错误..有谁可以帮助如何使第一个参数可选?

SNIPPET CODE: -

branch = ''
if  sys.argv[1]:
    branch = sys.argv[1]

错误: -

Traceback (most recent call last):
  File "test.py", line 102, in <module>
    main()
  File "test.py", line 66, in main
    if  sys.argv[1]:
IndexError: list index out of range

3 个答案:

答案 0 :(得分:1)

要将参数输入python,您可以使用getopt module。这里的参数可以是可选的,只要存在正确的标志,就可以按任何顺序输入。

在下面的示例中,用户有两个可选参数,输入文件名和数据库名。可以使用

调用代码
  

python example.py -f test.txt -d HelloWorld

  

python example.py file = test.txt database = HelloWorld

或两者的混合搭配。 可以更改标志和名称以反映您的需求。

import getopt

def main(argv):
     inputFileName = ''
     databaseName = ''
     try:                                                                     
         opts, args = getopt.getopt(argv,"f:d:",["file=","database="])
     except getopt.GetoptError:                                                
         print('-f <inputfile> -d <databasename> -c  <collectionname>')
         sys.exit()
     for opt, arg in opts:                                                     
         if opt in ('-f','--file'):                                              
             inputFileName = arg                                                
         elif opt in ('-d','--database'):                                        
             databaseName = arg

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

答案 1 :(得分:0)

使用异常处理(EAFP):

try:
    branch = sys.argv[1]
except IndexError:
    branch = ''

答案 2 :(得分:0)

您可以使用:

branch = sys.argv[1] if len(sys.argv) >= 2 else ''