Я осмотрелся, но ничего не нашел.Python: Использование getpass with argparse
В основном мне было интересно, можно ли использовать getpass.getpass()
с argparse.
На данный момент у меня есть следующий как работа вокруг, мне было просто интересно, есть ли лучший способ:
import argparse
import getpass
parser = argparse.ArgumentParser(description="Some description")
parser.add_argument('-p', metavar="password", default="foobarblah123", help="password for user (default to prompt user)")
...
parsed_args = parser.parse_args()
args = vars(parsed_args)
user_pass = args['p']
if user_pass == "foobarblah123":
user_pass = getpass.getpass()
Я довольно уверен, что это не самый лучший способ справиться с этим, однако , есть требование иметь параметр командной строки для пароля ... наилучшая практика или нет.
Спасибо.
Каждый другой инструмент командной строки, я использовал будет попросите пароль * отдельно *, если это необходимо, чтобы избежать этой проблемы. Откуда взялось это «требование»? – jonrsharpe
Это для автоматизации, и ребята хотят иметь возможность запускать ее ad-hoc и автоматизировать ее. Имя пользователя/пароль используется для API другой системы, у которой есть собственный набор пользовательских разрешений, основанных на AD. Возможно, существует лучший способ разрешить оба варианта. – MHibbin
Не удается ли автоматизировать его, даже если вы не поддерживаете его как аргумент командной строки? Ex. Они могут передать пароль в stdin. – Kevin