0

私は、従来の--argumentやではなく、英語の単語を引数に使用するスクリプトに取り組んでいます-a

これを argparse で処理することはあえてしていませんが、sys.argv でこれを行うと、次のようになります。

if sys.argv[3]:
    print('yes, there is a third argument')

を取得しIndexError: list index out of rangeます。これに対処する可能な方法は何ですか?3番目の引数があるかどうか知りたいです。

4

2 に答える 2

1

の長さを確認したいargv:

if len(sys.argv) > 3:
    print('yes, there is a third argument')

ただし、時間があれば、argparse を学習する価値があります。それほど怖くなく、コードが読みやすくなります。

于 2013-07-23T00:56:33.740 に答える
0

を使用len()して、最初に長さを確認するか、IndexError.

if len(sys.argv) > 3:
    # all three arguments are present
    print 'arg1', sys.argv[1], 'arg2', sys.argv[2], 'arg3', sys.argv[3]

また:

try:
   arg1, arg2, arg3 = sys.argv[1], sys.argv[2], sys.argv[3]
except IndexError:
   # arguments are missing
于 2013-07-23T00:56:24.533 に答える