当前位置:首页>python>[程序员] python: getpass无显输入带来的疑惑?

[程序员] python: getpass无显输入带来的疑惑?

  • 2026-10-11 06:18:17
[程序员] python: getpass无显输入带来的疑惑?
>>> import getpass>>> help(getpass.getpass)Help on function win_getpass in module getpass:win_getpass(prompt='Password: ', stream=None, *, echo_char=None)    Prompt for password with echo off, using Windows getwch().
这个getpass的功能是获取用户输入的密码。可以无显输入,就像通过putty远程登陆服务器时的效果。
一开开始在Windows的cmd下使用的时候,还在纳闷为什么我右键点击了,怎么没有显示key值,原来是无显效果。
可能一开始学习langchain都遇到的一个感觉疑惑的事情。

Putty、Xshell远程登录Linux输入密码时,屏幕不出现星号、不出现光标字符,敲多少键盘都空白,就是标准无回显机制;getpass.getpass()在 Windows CMD/PowerShell 里实现的就是完全同款效果:

- 敲键盘不会打印任何字符(无字母、无 *、无空格)

- 后台会完整收集你输入的字符串,回车后返回密码 / 密钥

右键粘贴API Key,屏幕上一片空白,第一反应会以为没粘贴成功、工具卡住了,其实只是程序刻意隐藏输出,粘贴内容已经读到内存里了。

https://docs.langchain.com/oss/python/integrations/chat/qwen

win_getpass 底层依赖 Windows C 标准库函数 _getwch(),这是实现不回显的核心,和普通 input()、_getwche() 有本质区别:

  1. _getwch():读取键盘按键,不自动输出字符到控制台(无回显)
  2. _getwche() / 普通控制台输入:读键 + 立刻把字符打印到屏幕(回显)

如果传入 echo_char="*",每读到一个正常字符,程序手动往控制台输出一个*;不传则完全不输出任何字符,就是你遇到的纯空白效果。

最新文章

随机文章