Arch Linuxと同じスタイルで使用するPythonスクリプトを作成していますpacman
。要約すると、次のようになります。
prog <operation> [options] [targets]
- 操作の形式は-X(ハイフン、大文字)であり、スクリプトを呼び出すときに1つ必要です。
- オプションの形式は-x(ハイフン、小文字)であり、操作ごとに異なる意味を持つ場合があります。
例えば:
pacman -Syu
とオプションを使用してsync
操作を実行し、システム全体を新しいパッケージでアップグレードすることを意味します。refresh
sysupgrade
pacman -Qu
query
オプションを指定して操作を実行し、upgrades
古いパッケージをすべて一覧表示することを意味します。pacman -Ss <arg>
は、同期パッケージで検索するパターンとして別の引数を期待するオプションを使用してsync
操作を実行することを意味します。search
パンチライン:
私はPython用のargparseライブラリを調べて、これを実装する方法を見つけようとしています。私はこれまでにいくつかの問題/設計の問題に遭遇しました:
argparse
オプションの引数として、ハイフンで始まる引数のみを受け入れます。私のすべての「操作」は、絶対に必要な場合、オプションの引数として表示されます。- スクリプトに1つの「位置」/必須の引数を持たせることができます。これは操作(
upgrade
またはのような単語に操作を切り替える必要がありadd
ます)と、それに続くオプションの引数です。--help
ただし、これでも、same-option-symbol-working-differentlyの問題は解決されず、サポートされているすべての操作をテキストで簡単にリストすることもできません。
この引数の解析を処理する最もスムーズな方法は何ですか?私はコマンドの使用法を変更することに反対していませんが、上で述べたように、私が知る限り、それは私の状況を助けていないようです。
ありがとう