如何在 Python 中使用 getopt/optarg?
问问题
62020 次
3 回答
50
这是我如何做的一个例子,我通常使用相同的基本模板:
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)
我不认为有任何 9 个参数的限制。
于 2011-06-17T07:49:01.387 回答
13
谷歌搜索会有所帮助。查看标准库中的getopt和argparse模块:
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)
然后按预期运行它:
$ 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)
当使用适当的参数运行时,它会打印命令行整数的总和或最大值:
$ prog.py 1 2 3 4
4
$ prog.py 1 2 3 4 --sum
10
这直接来自标准库。
于 2011-06-17T07:53:22.840 回答
4
您是否尝试过阅读该模块的 python 文档getopt
(http://docs.python.org/library/getopt.html?highlight=getopt#module-getopt)?它提供了一个如何使用的简单示例getopt
。转移参数是什么意思?如果要检查用户使用的参数是否不超过 9 个,可以检查sys.argv
列表的长度,其中包含传递给脚本的所有选项/参数。第一个元素是调用的脚本的名称,因此长度始终至少为 1。您可以执行以下操作:
if len(sys.argv) > 10
print('Too many arguments.')
于 2011-06-17T07:48:00.110 回答