Подтвердить что ты не робот

Как проверить, установлен ли аргумент из командной строки?

Я могу назвать свой script следующим образом:

python D:\myscript.py 60

И в script я могу сделать:

arg = sys.argv[1]
foo(arg)

Но как я могу проверить, был ли аргумент введен в вызове командной строки? Мне нужно сделать что-то вроде этого:

if isset(sys.argv[1]):
    foo(sys.argv[1])
else:
    print "You must set argument!!!"
4b9b3361

Ответ 1

Не используйте sys.argv для обработки интерфейса командной строки; есть модуль для этого: argparse.

Вы можете пометить аргумент, как требуется, передав required=True в add_argument.

import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument("foo", ..., required=True)
parser.parse_args()

Ответ 2

len(sys.argv) > 1

Ответ 3

if len(sys.argv) < 2:
    print "You must set argument!!!"

Ответ 4

Если вы используете Python 2.7/3.2, используйте модуль argparse. В противном случае используйте модуль optparse. Модуль позаботится о разборе командной строки, и вы можете проверить, соответствует ли количество позиционных аргументов ожидаемому.

Ответ 5

Я использую модуль optparse для этого, но я думаю, потому что я использую 2.5, вы можете использовать argparse, как предложил Алекс, если вы используете 2.7 или более

Ответ 6

for arg in sys.argv:
    print (arg)  
    #print cli arguments

Вы можете использовать его для хранения аргумента в списке и использования его. Это более безопасный способ, чем использовать их как это sys.argv[n]

Нет проблем, если аргументы не заданы

Ответ 7

if(sys.argv[1]): должен работать нормально, если нет аргументов sys.argv [1] будет (должно быть) null