<p>我为您准备了一个解决方案,您可以根据需要进行修改:</p>
<ol>
<li>安装<a href="https://pypi.python.org/pypi/getch" rel="nofollow noreferrer">getch</a>:<code>pip install getch</code>。这个模块有一个接一个地获取输入字符的方法。在</li>
<li><p>创建一个函数,该函数逐字符获取用户输入并在其所在位置打印<code>*</code>:</p>
<pre><code>#import sys (if option 1. is used)
import getch
def get_password():
p = ''
typed = ''
while True:
typed = getch.getch()
if typed == '\n':
print(typed)
break
p += typed
# Choose one of the following solutions:
# 1. General way. Needs import sys
sys.stdout.write('*')
sys.stdout.flush()
# 2. Python 3 way:
print('*', end='', flush=True)
return p
</code></pre></li>
</ol>
<p>祝你好运:)
</p><hr/>
<strong>编辑:</strong>对于@timgeb关于安全性的评论:
<p>来自<a href="https://docs.python.org/3.6/library/getpass.html" rel="nofollow noreferrer">getpass</a>文档:</p>
<blockquote>
<p>On Unix, the prompt is written to the file-like object stream using the replace error handler if needed. <br/>stream defaults to the controlling terminal (<code>/dev/tty</code>) or if that is unavailable to <code>sys.stderr</code> (this argument is ignored on Windows).</p>
</blockquote>
<p>所以它的行为和上面的函数非常相似,除了我的没有后备选项。。。在</p>