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

Optparser-print Использование Справка, если аргумент не указан

То, что я делаю сейчас, это просто проверить длину args, если это 0, указать пользователю ввести -h.

Есть ли лучший способ сделать это? Благодаря

4b9b3361

Ответ 1

Из вашего вопроса неясно, используете ли вы (устаревший) optparse модуль или его замену, argparse. Если предположить, что последний, если у вас есть хотя бы один позиционный аргумент, ваш script будет распечатывать сообщение об использовании, если не указаны аргументы (или недостаточные аргументы).

Вот пример script:

import argparse

parser = argparse.ArgumentParser(description="A dummy program")
parser.add_argument('positional', nargs="+", help="A positional argument")
parser.add_argument('--optional', help="An optional argument")

args = parser.parse_args()

Если я запустил это без аргументов, я получаю этот результат:

usage: script.py [-h] [--optional OPTIONAL] positional [positional ...]
script.py: error: too few arguments

Ответ 2

Вы можете сделать это с optparse просто отлично. Вам не нужно использовать argparse.

if options.foo is None: # where foo is obviously your required option
    parser.print_help()
    sys.exit(1)

Ответ 3

Спасибо за @forkchop за подсказку parser.print_help()!!!

то я думаю, что это может быть так?

import optparse
parser = optparse.OptionParser()
...
options, remainder = parser.parse_args()
if len(sys.argv[1:]) == 0:
    print "no argument given!"
    parser.print_help()

Ответ 4

Вот как я обработал этот подход раньше:

import optparse
parser = optparse.OptionParser()
...
if len(sys.argv) == 1: # if only 1 argument, it the script name
    parser.print_help()
    exit()

Ответ 5

Отъезд http://docs.python.org/library/optparse.html

Он должен делать то, что обычно ожидают пользователи из приложений командной строки - когда задан флаг -h, он будет показывать справку об использовании.