как преобразовать строку в строку getpass.getpass() в python

#python #telethon

#python #телемарафон

Вопрос:

существует функция, которая называется getpass, которая просит вас ввести пароль внутри input(), а затем возвращает пароль.

Я пытаюсь преобразовать строку в объект getpass. без использования ввода.

Я общаюсь с telethon api

Всякий раз, когда я пытаюсь использовать ненормальную строку в качестве своего пароля, я получаю сообщение «Не удалось войти», вы можете просмотреть код здесь:

 try:
     obj.client.sign_in(obj.user.phone, code = code)
except SessionPasswordNeededError:
     try:
         obj.client.sign_in(password=obj.client.cloud)
     except:
         print("Couldn't log")
 

Но когда я использую

 try:
     obj.client.sign_in(obj.user.phone, code = code)
except SessionPasswordNeededError:
     try:
          passw = getpass.getpass()
          obj.client.sign_in(password=passw)
     except:
          print("Couldn't log")
 

Я не получаю исключений, и все работает хорошо.
поэтому я знаю, что getpass не возвращает обычную строку, и мне нужно преобразовать мою строку в объект getpass

Есть ли какая-либо возможность сделать это?

Заранее спасибо!

——Редактировать——

как упоминал @Chris в комментариях, getpass возвращает обычную строку. Проблема была с «obj.client.cloud», внутри которого был разрыв строки, поэтому, когда я напечатал обе строки, я подумал, что они одинаковые.

Вы можете проверить тип объекта, используя type(obj), как указал @Chris. и вы можете проверить, совпадают ли оба значения, используя («string» == getpass.getpass()), и он вернет значение true .

Комментарии:

1. getpass.getpass() возвращает обычную строку. Приводить нечего. Попробуйте сами: запустите type(passw) . Я подозреваю obj.client.cloud , что она не содержит того, что вы думаете.

2. @Chris Я думаю, вы были правы, вероятно, проблема в obj.client.cloud. Это странно, потому что всякий раз, когда я печатаю obj.client.cloud, он возвращает правильный облачный пароль, но он не работает. Если я ввожу пароль напрямую, он работает.

3. Хорошо, после проверки внутри строки был разрыв строки, и это вызвало исключение. @Chris спасибо за вашу помощь!