現在、私はPythonを使ってディレクトリリーダープログラムを作成しています。 私はコマンドラインから引数を解析するために 'argparse'を使用しています。"help"をPythonの異なる引数グループに移動するargparse
usage: LS.py [options] [path1 [path2 [...pathN]]]
The paths are optional; if not given . is used.
optional arguments:
-h, --help show this help message and exit
Options:
-m , --modified show last modified date/time [default: off]
-o ORDER , --order=ORDER
order by ('name', 'n', 'modified', 'm', 'size', 's')
[default: name]
-r , --recursive recurse into subdirectories [default: off]
-s , --sizes show sizes [default: off]
私の質問:次のように「LS.py -h」は、それは次の出力を生成して呼ば
parser = argparse.ArgumentParser(prog = "LS.py",
usage = "%(prog)s [options] [path1 [path2 [...pathN]]]\nThe paths are optional; if not given . is used.")
group = parser.add_argument_group("Options")
group.add_argument("-path", default = ".", help = argparse.SUPPRESS, metavar = "")
group.add_argument("-m", "--modified", default = False,
help = "show last modified date/time [default: off]",
metavar = "")
group.add_argument("-o ORDER", "--order=ORDER", nargs = 2, default = "name",
help = "order by ('name', 'n', 'modified', 'm', 'size', 's')\n[default: name]",
metavar = "")
group.add_argument("-r", "--recursive", default = False,
help = "recurse into subdirectories [default: off]",
metavar = "")
group.add_argument("-s", "--sizes", default = False,
help = "show sizes [default: off]", metavar = "")
args = parser.parse_args()
return args
:デフォルトを移動する方法はあります私は、次のコードを持っていますOptionsのようなグループに引数を付ける? また、オプション引数のカンマの前にスペースを削除する方法が見つからないようです。理想的な出力は次のとおりです。
Usage: ls.py [options] [path1 [path2 [...pathN]]]
The paths are optional; if not given . is used.
Options:
-h, --help show this help message and exit
-m, --modified show last modified date/time [default: off]
-o ORDER, --order=ORDER
order by ('name', 'n', 'modified', 'm', 'size', 's')
[default: name]
-r, --recursive recurse into subdirectories [default: off]
-s, --sizes show sizes [default: off]
'action =" store_true "' – mgilson
Derpの代わりに 'action =" help "'を使用するとさらに簡単になります。ありがとう! – nneonneo
これは私の質問にすべて答えました、ありがとうございました。私はしばらくドキュメントを見ていたので、それを見つけることができませんでした。 –