编辑
以解决您的编辑,
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