Optparser-print Использование Справка, если аргумент не указан
То, что я делаю сейчас, это просто проверить длину args, если это 0, указать пользователю ввести -h.
Есть ли лучший способ сделать это?
Благодаря
Ответы
Ответ 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
, он будет показывать справку об использовании.