将多个参数传递给脚本的更有效方法?

时间:2016-08-31 08:05:41

标签: python arguments parameter-passing

我的命令行脚本包含多个参数,包括字符串,整数,浮点数和列表,使用所有参数进行调用变​​得有点棘手:

python myscript.py arg1 arg2 arg3 ... argN

为了避免在命令行中写入所有参数,我创建了一个包含所有参数的文本文件,我只是逐行读取以收集参数。这工作正常,但这是最好的做法吗?有更有效的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用argpase模块。请参阅以下链接:)

https://pymotw.com/2/argparse

Dead simple argparse example wanted: 1 argument, 3 results

答案 1 :(得分:1)

对我来说,我认为python getopt是最佳选择。

#!/usr/bin/python

import sys, getopt

def main(argv):
   inputfile = ''
   outputfile = ''
   try:
      opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
   except getopt.GetoptError:
      print 'test.py -i <inputfile> -o <outputfile>'
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print 'test.py -i <inputfile> -o <outputfile>'
         sys.exit()
      elif opt in ("-i", "--ifile"):
         inputfile = arg
      elif opt in ("-o", "--ofile"):
         outputfile = arg
   print 'Input file is "', inputfile
   print 'Output file is "', outputfile

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

用法:

usage: test.py -i <inputfile> -o <outputfile>

当你有一个参数的名字时,它会更容易运行。

参考:http://www.tutorialspoint.com/python/python_command_line_arguments.htm