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
getopt
モジュールのPythonドキュメント(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 に答える