Пустой аргумент python

как распечатать справочную информацию, если никакие аргументы не передаются на python script?

#!/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 == "", которую я не знаю, как выразить:(

Ответы

Ответ 1

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

Первым элементом sys.argv всегда является либо имя самого script, либо пустая строка. Если sys.argv имеет только один элемент, тогда не должно быть аргументов.

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

Ответ 2

if len(sys.argv)<2:

Имя программы всегда находится в sys.argv [0]

Ответ 3

Как говорили другие, вы можете проверить, были ли приняты какие-либо аргументы:

#!/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 под названием OptParse, который был явно разработан для анализа аргументов командной строки при запуске script. Я бы предложил изучить этот вопрос, так как он немного более "совместим с стандартами" (как и в случае, это ожидаемый и принятый метод разбора командной строки в сообществе Python).

Ответ 4

Следующее - это очень Pythonic способ решения вашей проблемы, потому что он преднамеренно генерирует исключение в try.. кроме:

import sys

try:   
   sys.argv[1:] // do sth with sys,argv[1:]  
except IndexError:  
   print "usage is..."
   sys.exit()

Ответ 5

#!/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"

Ответ 6

На основании ответа Noctis Skytower

import sys
args = sys.argv[1:]

for arg in args:
    if arg == "do":
        # do this

if not args:
    print "usage is bla bla bla"

Ответ 7

Я рекомендую использовать lib optparse [1], более элегантно: D

[1] Более мощный синтаксический анализатор командной строки < http://docs.python.org/library/optparse.html >

Ответ 8

import argparse

def parse_args():
    parser = argparse.ArgumentParser(
        add_help=True,
    )

    # your arguments here

    if len(sys.argv) == 1:
        parser.print_help()
        sys.exit(0)
    else:
        options = parser.parse_args()

    return options