Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 21, 2018 12:42:51

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

argparse CLI

У меня есть одна библиотека, и я хочу сделать для нее интерфейс командной строки. И вот есть такая нужда сделать, чтобы было 2 флага, но юзер обязан выбрать хотя бы 1 из них, типо:

 user@root-machine$ python3 somecli.py --help
usage: [-h] [-flag1] [-flag12]
optional arguments:
  -h, --help  show this help message and exit
  -flag1
  -flag2
И вот я хочу, чтобы нельзя было использовать одновременно 2 флага и нельзя было не использовать ни одного. Можно как-то сделать без:
 parser = parser.parse_args()
if not (parser.flag1 or parser.flag2):
  print('Use one of these: -flag1, -flag2')
  exit(1)
elif parser.flag1 and parser.flag2:
  print('Use only one of these: -flag1, -flag2')
  exit(1)
else:
  flag = (parser.flag1, parser.flag2)[bool(parser.flag1)]



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#2 Окт. 22, 2018 10:38:10

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

argparse CLI

Давайте я вам дам подсказку

 >>> for x in [0, 1]:
...     for y in [0, 1]:
...         print(x, y, x^y)
... 
(0, 0, 0)
(0, 1, 1)
(1, 0, 1)
(1, 1, 0)

Могу помочь, моих знаний хватит с лихвой
ну как сказать



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version