2

私は友人の Python コードを手伝っています。メニューを作っているのですが、寸法をカスタマイズできるようにしたいと思っています。私はargparseで遊んでいますが、運がありませんでした。私の考えは、menu.py デフォルトを 80*24 にしてmenu.py 112 84、112*84 に設定することです。ここに現在のコードがあります:

import argparse
args = argparse.ArgumentParser(description='The menu')
width = length = 0
args.add_argument('--width', const=80, default=80, type=int,
                  help='The width of the menu.', nargs='?', required=False)
args.add_argument('--length', const=24, default-24, type=int,
                  help='The length of the menu.', nargs='?', required=False)
inpu = args.parse_args()
width = inpu.width
length = inpu.length
print(width)
print(length)

どうすればこれを行うことができargparseますか?

4

1 に答える 1

2

あり(少しクリーンアップ):

args.add_argument('-w','--width', const=84, default=80, type=int,
              help='The width of the menu.', nargs='?')
args.add_argument('-l','--length', const=28, default=24, type=int,
              help='The length of the menu.', nargs='?')

私が期待する

menu.py  => namespace(length=24, width=80)
menu.py -w -l -w => namespace(length=28, width=84)
menu.py -w 23 -l 32 => namespace(length=32, width=23)

引数を次のように変更すると

args.add_argument('width', default=80, type=int,
              help='The width of the menu.', nargs='?')
args.add_argument('length', default=24, type=int,
              help='The length of the menu.', nargs='?')

期待したい

menu.py => namespace(length=24, width=80)
menu.py 32 => namespace(length=24, width=32)
menu.py 32 33 => namespace(length=33, width=32)

で 1 つの引数を使用してnargs='*'、整数のリストを取得し、それを と の間でnamespace=[32, 34]分割することもできます。 lengthwidth

于 2015-12-14T23:52:10.000 に答える