python - Python 中的 getpass.getpass() 函数不起作用?

标签 python

在 Windows 7 上运行并使用 PyCharm 2016.2.3(如果有必要的话)。

无论如何,我正在尝试编写一个向收件人发送电子邮件的程序,但我希望控制台提示输入密码才能登录。

我听说getpass.getpass()可以用来隐藏输入。

这是我的代码:

import smtplib
import getpass

import sys

print('Starting...')

SERVER = "localhost"
FROM = "my@email.com"

while True:
    password = getpass.getpass()
    try:
        smtpObj = smtplib.SMTP(SERVER)
        smtpObj.login(FROM, password)
        break
    except smtplib.SMTPAuthenticationError:
        print("Wrong Username/Password.")
    except ConnectionRefusedError:
        print("Connection refused.")
        sys.exit()

TO = ["your@email.com"] 
SUBJECT = "Hello!"
TEXT = "msg text"

message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)

smtpObj.sendmail(FROM, TO, message)
smtpObj.close()
print("Successfully sent email")

但是当我运行代码时,输​​出如下:

 Starting...
 /Nothing else appears/

我知道 getpass() 的默认提示是 'Password:',但即使我向其传递提示字符串,我也会得到相同的结果。

有什么建议吗?

编辑:代码在打印字符串后继续无限期运行,但不会出现任何其他内容,也不会发送电子邮件。

最佳答案

对于 PyCharm 2018.3 转到“编辑配置”,然后选择“在输出控制台中模拟终端”。

enter image description here

Answer provided by Abhyudaya Sharma

关于python - Python 中的 getpass.getpass() 函数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55025483/

相关文章:

python - pytest自定义断言,如何获取回溯

python - python中有类似 "set -x"的东西吗

python - 查询长列表

Python:查找前 N 位数字可被 N(从 0-9)整除的数字的代码

python - 使用 QThread 动态创建 QImage 帧到 ffmpeg 标准输入

Python新手,等于字符串?

python - 在模板中显示 django-reversion 的 field_dict.items()

python - 不使用 Ibpy 的 IB API Python 示例

python - 使用带有 javascript 页面的 python 请求

python - 有没有一种简单的方法可以将 ISO 8601 持续时间转换为 timedelta?