Saat mengetik, bisakah Anda mengubah teks yang ditampilkan seperti apa? [duplikat]

Jadi saya membuat program untuk menguji kata sandi dan bertanya-tanya, Ketika pengguna memasukkan kata sandinya, dapatkah Anda menghentikan tampilan kata sandinya saat mereka mengetiknya di konsol/GUI?


person 0llie_C    schedule 11.03.2014    source sumber
comment
Untuk aplikasi konsol, sebaiknya gunakan modul getpass meskipun tidak mengubah karakter yang diketik menjadi tanda bintang.   -  person Jayanth Koushik    schedule 11.03.2014
comment
Apakah Anda yakin ingin * digaungkan? Apakah menekan tampilan penekanan tombol saja sudah cukup?   -  person MattH    schedule 11.03.2014
comment
Ya, menekan tombol akan berhasil, tetapi bagaimana caranya?   -  person 0llie_C    schedule 11.03.2014
comment
Terima kasih :) Akan mencobanya   -  person 0llie_C    schedule 11.03.2014


Jawaban (2)


Python telah menyediakan perpustakaan bawaan untuk Anda:

>>> import getpass
>>> pw = getpass.getpass()

Sunting: Seperti yang disebutkan oleh @MattH, ini tidak akan menampilkan tanda bintang (*) saat pengguna mengetikkan kata sandi.

person santosh-patil    schedule 11.03.2014
comment
Tidak menyediakan * untuk penekanan tombol - person MattH; 11.03.2014

import tkinter as tk 

root = tk.Tk()

def store():
    pw = my_box.get()

my_box = tk.Entry(root, show='*')
my_box.pack()
Button(text='Submit', command=store).pack()

root.mainloop()

Ini akan bekerja di GUI. Anda kemudian dapat menghubungi pw = my_box.get() jika diperlukan.


Anda dapat menyembunyikan pengguna input di konsol menggunakan getpass modul- tetapi ini hanya menyembunyikan dan tidak menampilkan tanda bintang.

>>> import getpass
>>> pw = getpass.getpass()

Namun menampilkan tanda bintang di konsol sedikit lebih rumit; Anda perlu menggunakan sys dan msvcrt- Google atau mengajukan pertanyaan terpisah yang menanyakan cara menggunakan modul ini untuk tujuan itu; Aku tidak tahu.

person anon582847382    schedule 11.03.2014