Разбор многосимвольных команд в Python getopt
Я использовал Python Getopt для синтаксического анализа, как короткий, так и длинный, и он работал отлично. Теперь мне нужно добавить несколько коротких переменных в функцию getopt, и это выглядело бы лучше, если бы мне нужно было использовать несколько символов как getopt:short. Есть ли способ сделать что-то подобное.
getopt.getopt(argv,"hf:c:d:pv:pz:","")
Здесь мне нужно получить доступ к pv и pz в качестве отдельных аргументов командной строки вместо того, чтобы getopt читал его как "p без аргументов", "v с одним аргументом". Я пробовал 'pv:' [pv:] внутри кавычек, но он распознавал pv, но не читает аргументы.
Кроме того,(на другой ноте) возможно иметь более одного входа для одних и тех же аргументов. Прошу прощения, если это очень простой ответ.
0 ответов
Основываясь на моем понимании документации и исследований, которые я провел, когда мне нужно было то же, что и вам, у меня нет возможности сделать это. shortopts
с префиксом "-" работать только с одним символом, для более чем одного символа вы должны использовать longopts
, использующие префикс "-".
Пример на python3:
import sys, getopt
try:
opts, args = getopt.getopt(sys.argv[1:], 'c:d:', ['hf','pv','pz'])
except getopt.GetoptError as e:
print(str(e))
for o, a in opts:
print(o, ':', a)
К сожалению, думаю нет возможности поставить longopts
с обязательным аргументом, но это можно решить с помощью ручной проверки.
Для получения дополнительной информации я рекомендую обратиться к документации: https://docs.python.org/3.1/library/getopt.html