Форум сайта python.su
Привет всем.
Поделитесь кодом для разбора CLI параметров в стиле Unix, хотелось-бы попроще. Чтобы можно было легко добавлять обязательные и необяз. параметры итд.
Офлайн
Офлайн
Подскажите плиз, как сделать чтобы optparse читал опции справа на лево.
И еще вопросик, есть код:
#!/usr/local/bin/python
# -*- coding: koi8-r -*-
from optparse import OptionParser
parser = OptionParser()
parser.add_option(“-f”, “–file”, dest=“filename”,
help=“write report to FILE”, metavar=“FILE”)
parser.add_option(“-q”, “–quiet”,
action=“store_const”, const=0, dest=“verbose”)
parser.add_option(“-v”, “–verbose”,
action=“store_const”, const=1, dest=“verbose”)
parser.add_option(“–noisy”,
action=“store_const”, const=2, dest=“verbose”)
options, args = parser.parse_args()
Он может парсить так:
$ ./arg.py -q -f/dev/acd0
$ ./arg.py -q -f/dev/acd0 something
$ ./arg.py –file=/dev/fd0 -v something
$ ./arg.py something
итд, вопрос как обработать “something”, т.е в итоге вывести ошибку о том что “something” в этих местах не ожидается. Оно вобщем-то не мешается, но…
Офлайн
Для начала не #!/usr/local/bin/python, а #!/usr/bin/env python
Потому что у меня нет такого пути как /usr/local/bin/python. Питон у всех по-разному лежит.
Вообще, я бы поставил в конце исходника строки:
print options
print args
Затем передавал бы скрипту различные аргументы и смотрел бы результаты.
Если бы я так сделал, то сразу бы стало понятно как определить ситуацию с запуском: $./arg.py something
И, в результате, я бы сделал так:
if args: print "Warning: medved has been created."
if len(args) > 0: print "Error: medved already exists."
Отредактировано (Фев. 13, 2007 05:45:21)
Офлайн