Python 空参数

20 投票
8 回答
67336 浏览
提问于 2025-04-15 18:51

如果我在运行Python脚本时没有传递任何参数,怎么打印帮助信息呢?

#!/usr/bin/env python

import sys

for arg in sys.argv:
    if arg == "do":
        do this
    if arg == ""
        print "usage is bla bla bla"

我缺少的是这一行 if arg == "",但我不知道该怎么写 :(

8 个回答

6

你可以通过以下方式检查是否有传入参数:

#!/usr/bin/env python

import sys
args = sys.argv[1:]

if args:
    for arg in args:
        if arg == "do":
            # do this
else:
    print "usage is bla bla bla"

不过,Python 有一些专门用来处理命令行参数的模块,比如 argparseOptParse(现在已经不推荐使用了)。我建议你了解一下这些模块,因为它们更符合标准(也就是说,在 Python 社区中,这是处理命令行参数的常用和被接受的方法)。

15
if len(sys.argv)<2:

程序的名字总是保存在 sys.argv[0] 里。

29
if len(sys.argv) == 1:
    # Print usage...

sys.argv的第一个元素总是脚本的名字,或者是一个空字符串。如果sys.argv只有一个元素,那就说明没有传入任何参数。

http://docs.python.org/library/sys.html#sys.argv

撰写回答