Как я могу перенаправить Python getpass () в stderr?

1

Я пытаюсь написать программу, которая собирается распечатать свои подсказки по стандартной ошибке, и ее вывод в стандартную версию, чтобы я мог впоследствии управлять выходом.

Я немного новичок в python, но в документации для getpass() показано, что я должен выбрать поток:

getpass.getpass([prompt[, stream]])

Я попробовал множество аргументов, чтобы получить доступ, но я не могу заставить его запросить в stderr. Любая помощь будет оценена, спасибо.

>>> password = getpass.getpass("Password", sys.stderr)
TypeError: unix_getpass() takes at most 1 argument (2 given)
  • 4
    getpass.getpass(prompt, sys.stderr) вас не работает? Что происходит вместо того, что вы хотите, когда вы делаете это? Обратите внимание, что getpass на getpass пароля, как правило, не должны перенаправляться от управляющего терминала, в отличие от других запросов, и большая часть getpass заключается в том, что он получает это право. (Плюс это обрабатывает, не повторяя пароль, конечно.)
  • 0
    Можете ли вы объяснить мне, что не так с перенаправлением только подсказки? Когда я набираю пароль = getpass.getpass («Пароль», sys.stderr), я получаю это: TypeError: unix_getpass () принимает не более 1 аргумента (2 дано)
Показать ещё 2 комментария
Теги:
stderr

1 ответ

4
Лучший ответ

аргумент потока для getpass.getpass() был добавлен в python 2.5 и недоступен в предыдущих версиях.

  • 0
    Ага! Вот и все. Я забыл, что использую Python 2.4, который является довольно важной информацией. Огромное спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню