あなたの編集
に対処するための編集、
import sys
sys.argv = sys.argv[1:]
names = []
while sys.argv and sys.argv[0] == 'add':
#while the list is not empty and there is a name to add
names.append(sys.argv[1])
print sys.argv[1], 'was added to the list of names.'
sys.argv = sys.argv[2:]
以下のすべてがこれで動作します
$ python program.py add Peter
Peter was added to the list of names.
$ python program.py add Peter add Jane
Peter was added to the list of names.
Jane was added to the list of names.
$ python program.py
各名前の前に「追加」を要求する利点が、名前を追加した後に探したい他の引数がある場合は、それができるということです。複数の名前を渡したい場合python program.py add Peter Jane
は、かなり簡単な変更でこれを行うことができます
import sys
names = []
if len(sys.argv) > 2 and sys.argv[1] == 'add':
names = sys.argv[2:]
for n in names:
print n, 'was added to the list of names.'
オリジナル
optparse のようなものを使用したほうがよいようです。ただしsys.argv
、リストなので、長さを確認できます。
arg1 = sys.argv[1] if len(sys.argv) > 1 else 0 # replace 0 with whatever default you want
arg2 = sys.argv[2] if len(sys.argv) > 2 else 0
次に、arg1 と arg2 を「オプションの」コマンド ライン引数として使用します。これにより、1 つ、2 つ、または 0 つのコマンド ライン引数を渡すことができます (実際には、2 つ以上を渡すことができ、それらは無視されます)。-a
これはまた、引数が既知の順序を持っていることを前提としています。値が続くようなフラグを使用したい場合は、optparse http://docs.python.org/library/optparse.html?highlight=optparse#optparseを調べてください。