私は以下のpythonプログラムをコマンドラインから引数を取る必要があります。Pythonはコマンドライン引数with-in program
import argparse
import sys
choice=['orange','apple', 'grapes', 'banna']
def select():
parser = argparse.ArgumentParser(prog='one', description='name test')
parser.add_argument(
'fname',
action="store",
type=str,
choices=choice,
help="furits name")
args = parser.parse_args(sys.argv[1:2])
print 'selected name {0}\n'.format(args.fname)
if __name__ == '__main__':
select()
これはと-のmain関数の引数をインライン化するにはどうすればよい
python s.py apple
selected name apple
に動作します。私はこれを試みたが、それは動作しません。
変更メインラインthis。
if __name__ == '__main__':
sys.argv[0]='apple'
select()
下記のエラーが発生します。
usage: one [-h] {orange,apple,grapes,banna} one: error: too few arguments
どのように私は、引数でこれを達成することができますか? -SR
'parse_args'のデフォルトの動作は、' sys.argv [1:] 'を使うことです。 'sys.argv [0]'はデフォルトの 'prog'属性として使われます。 – hpaulj