2

Python でoptparseを構成して先頭を取らないようにする方法はありますか? だから代わりに

%program -d optionvalue

私は得る

%program d optionvalue

現在、やろうとすると

parser.add_option('d', '--database')

次のエラーが表示されます。

optparse.OptionError: invalid option string 'd': must be at least two characters long

どんな助けでも大歓迎です!ありがとう

4

3 に答える 3

6

要するに、いいえ。

プログラムの実行をガイドまたはカスタマイズするための追加情報を提供するために使用される引数。オプションにはさまざまな構文があります。従来の Unix 構文は、ハイフン ("-") の後に 1 文字が続きます (-x や -F など)。また、従来の Unix 構文では、複数のオプションを 1 つの引数にマージできます。たとえば、-x -F は -xF と同等です。GNU プロジェクトで導入された -- ファイルや --dry-run など、ハイフンで区切られた一連の単語が続きます。これらは、optparse が提供する 2 つのオプション構文のみです。

http://docs.python.org/library/optparse.html#terminology

それを自分で解析する必要があります。

于 2011-05-20T01:33:26.037 に答える
1

parse_args()デフォルトで使用される を使用するだけでなく、独自の引数リストを提供できsys.argv[1:]ます。したがって、コマンドライン引数を前処理してから、optargs に渡すことができます。すべての 1 文字の引数をオプション キーとしてカウントする場合:

orig_args = sys.argv[1:]
new_args = []
for arg in orig_args:
    if len(arg) == 1:
        arg = '-' + arg
    new_args.append(arg)

(options, args) = parser.parse_args(new_args)

OptionParser(サブクラス化してそこに置くこともできます)

于 2011-05-20T16:41:23.297 に答える
0

コールバック アクションを使用して強制できる場合があります。

http://docs.python.org/library/optparse.html#callback-example-6-variable-arguments

これにより、左右の引数への生のアクセスが可能になります

于 2011-05-20T01:35:26.983 に答える