2017-06-17 1 views
0

Gibt es eine Möglichkeit, Text bei der Eingabe in Python 3 Terminal in Punkte zu konvertieren.
mein Code:Wie zeigt man Text während der Eingabe als Punkte im Python-Terminal?

[........ 
user = input('Enter Your UserName:') 
pass = input('Enter Your Password:') 
........] 

ich das Modul wissen getpass .Aber es nicht im Terminal arbeiten, es gibt Warnung:

Warning (from warnings module): 
return fallback_getpass(prompt, stream) 
GetPassWarning: Can not control echo on the terminal. 
Warning: Password input may be echoed. 

Wenn es sich um Text ohne Vorwarnung und verstecken arbeiten können, bitte Sag mir.
Gibt es eine Otherway somthing wie:

import sys 
shell = sys.stdout.shell 
shell.show input as '0'; 
.... 

ich ein Skript bin erstellen, die dem Benutzer Passwort zu geben, fragt aber es sieht schlecht aus, wenn Kennwort gezeigt wird, während Sie tippen.
Ich bin hier mit einer Hoffnung, dass Sie mir helfen können.
Wenn Sie weitere Informationen wünschen, bin ich bereit, Ihnen zu liefern.
Danke ....

+0

Was für Terminal und OS? – mx0

+0

Mögliches Duplikat von ["GetPassWarning: Echo kann auf dem Terminal nicht gesteuert werden", wenn es von IDLE ausgeführt wird] (https://stackoverflow.com/questions/38878741/getpasswarning-can-not-control-echo-on-the-terminal- when-running-from-idle) – mx0

+0

Ich bin auf Windows.Überprüfen Sie diese [Bild] (https://postimg.org/image/f86ngmmez/f97b4fac/). –

Antwort

0

Eine Passworteingabe mit tkinter ist eine schlechte Idee.
Ich habe dieses eine, in der es Benutzername und Passwort nur außer Passwort hat:

from tkinter import * #(tkinter (A cross-platform GUI) 

top = Tk() 
def callback(): #what to do after button(Submit) pressed 
    print(E2.get()) #printing first input 
    print(E1.get()) #printing second input 
    top.destroy() #exiting tkinter 
top.title('Login') 
L1 = Label(top, text="User Name") 
L1.grid(row=0, column=0) #setting up position for user name field 
E2 = Entry(top, bd = 5) 
E2.grid(row=0, column=1) 

L1 = Label(top, text="Password") # text for second name,currently Password 
L1.grid(row=1, column=0) #setting up position for password field 
E1 = Entry(top, bd = 5,show='*') #hidding the text with * 
E1.grid(row=1, column=1) 
MyButton1 = Button(top, text="Submit", width=10, command=callback) # button named submit 
# 'command=callback ' the command you want to do|we have created a function callback 

MyButton1.grid(row=3, column=1) # position for button 

top.mainloop() 

hoffe, es wird für Sie hilfreich sein.
getpass ist nicht für IDLE

0

Sie nicht getpass innerhalb Python IDLE verwenden können.

versuchen, auch Dinge wie Umleiten stdout Ursachen Neustart innerhalb IDLE shell:

import sys 
import os 
import getpass 

sys.stdout = os.devnull 
getpass.getpass() 

== RESTART: Shell == 

Vielleicht können Sie tkinter Dialogfenster verwenden Benutzer für Kennwort gefragt:

# import tkinter (a crossplatform GUI) 
import tkinter 

# import a simple dialog form with a label and a button 
# so you don't have to build one yourself 
import tkinter.simpledialog 

# create an empty main window for GUI, 
# without it you will get an error: 
# AttributeError: 'NoneType' object has no attribute 'winfo_viewable' 
tk_root = tkinter.Tk() 

# you don't really need to show it, so hide it immediately 
tk_root.withdraw() 

# create a dialog window with title 'Password' 
# and a text label 'Enter Your Password:' 
# also hide typed password with * 
passwd = tkinter.simpledialog.askstring('Password','Enter Your Password:', show='*') 

Nur speichern als Funktion:

def get_pass(): 
    import tkinter 
    import tkinter.simpledialog 
    tk_root = tkinter.Tk() 
    tk_root.withdraw() 
    return tkinter.simpledialog.askstring('Password','Enter Your Password:', show='*') 

und verwenden Sie get_pass() anstelle von getpass().

+0

Überprüfen Sie dies [Fehler] (https://postimg.org/image/e2gbi0ep1/). –

+0

@mini Ich habe den Code für die Arbeit mit Python 3.5 und 3.6 aktualisiert. – mx0

+0

Es ist perfekt, aber können Sie den gesamten Code in eine unlesbare kleine Zeile konvertieren? –

Verwandte Themen