Mak*_*kis 48

这是我如何做的一个例子,我通常使用相同的基本模板:

import sys
import getopt

try:
    opts, args = getopt.getopt(sys.argv[1:], 'm:p:h', ['miner=', 'params=', 'help'])
except getopt.GetoptError:
    usage()
    sys.exit(2)

for opt, arg in opts:
    if opt in ('-h', '--help'):
        usage()
        sys.exit(2)
    elif opt in ('-m', '--miner'):
        miner_name = arg
    elif opt in ('-p', '--params'):
        params = arg
    else:
        usage()
        sys.exit(2)
Run Code Online (Sandbox Code Playgroud)

我认为没有任何9个参数限制.

  • "argv"需要是"sys.argv" (3认同)
  • 你需要从`argv`数组中截取脚本名称,如:arvg [1:],这条线可以工作:`opts,args = getopt.getopt(argv [1:],'m:p:h', ['miner =','params =','help'])` (3认同)
  • use()函数用于什么? (3认同)

bri*_*ice 13

谷歌搜索会有所帮助.看看标准库中的getoptargparse模块:

import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                   help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                   const=sum, default=max,
                   help='sum the integers (default: find the max)')

args = parser.parse_args()
print args.accumulate(args.integers)
Run Code Online (Sandbox Code Playgroud)

然后按预期运行它:

$ prog.py -h
usage: prog.py [-h] [--sum] N [N ...]

Process some integers.

positional arguments:
 N           an integer for the accumulator

optional arguments:
 -h, --help  show this help message and exit
 --sum       sum the integers (default: find the max)
Run Code Online (Sandbox Code Playgroud)

使用适当的参数运行时,它会输出命令行整数的总和或最大值:

$ prog.py 1 2 3 4
4

$ prog.py 1 2 3 4 --sum
10
Run Code Online (Sandbox Code Playgroud)

这直接来自标准库.