如何在 python shell 中创建密码条目?
How do you create a passcode entry in the python shell?
如何创建修改后的 input()
函数,以便当您输入任何内容时,与您输入的内容不同的内容会出现在 shell 中?
示例输出:
>>> input('in>')
in> ***********
hello world
请参阅 effbot http://effbot.org/tkinterbook/entry.htm
上的 show= 示例和说明
您可能想为此使用 Tk,但要取消 root。绑定 root 以检测任何按键,当检测到时,记录按键但打印出 '*'
对于基本的一次性密码,这是代码:
from tkinter import *
import sys
cp = ''
root = Tk()
def process(event):
global cp
key = event.keysym
if key == 'Return':
sys.stdout.write('\n')
print(cp)
sys.exit()
else:
if len(key) == 1:
cp += key
sys.stdout.write('*')
root.bind('<Key>', process)
root.withdraw()
root.mainloop()
如果您将从另一个程序调用它或多次使用它,
使用共享文件和使用子进程可能会有所帮助。
如何创建修改后的 input()
函数,以便当您输入任何内容时,与您输入的内容不同的内容会出现在 shell 中?
示例输出:
>>> input('in>')
in> ***********
hello world
请参阅 effbot http://effbot.org/tkinterbook/entry.htm
上的 show= 示例和说明您可能想为此使用 Tk,但要取消 root。绑定 root 以检测任何按键,当检测到时,记录按键但打印出 '*'
对于基本的一次性密码,这是代码:
from tkinter import *
import sys
cp = ''
root = Tk()
def process(event):
global cp
key = event.keysym
if key == 'Return':
sys.stdout.write('\n')
print(cp)
sys.exit()
else:
if len(key) == 1:
cp += key
sys.stdout.write('*')
root.bind('<Key>', process)
root.withdraw()
root.mainloop()
如果您将从另一个程序调用它或多次使用它, 使用共享文件和使用子进程可能会有所帮助。