2016-03-04 230 views
4

有沒有辦法在Python中將字符轉換爲星號,就像它可以在很多網站上看到的一樣?如何在密碼輸入時將密碼轉換爲星號?

例如,如果某個電子郵件用戶在輸入密碼時被要求登錄他們的帳戶,它不會顯示爲字符,而會在每個筆畫後顯示爲*而沒有任何時間延遲。

如果實際的密碼是KermitTheFrog,它會在鍵入時顯示爲*************

+3

這對我來說非常模糊 - 你的輸入源是什麼?一個網頁?終奌站? tkinter文本區域?是的,但每個人都有所不同 –

+0

我實際上是在爲一個學校項目做這個工作,我是一個非常基本的程序員......但是我會嘗試使用tkinter文本區域,所以如果你能夠幫助它的話'd be great – LeroyJD

回答

11

getpass(),一個函數,它用戶輸入。

import getpass 

password = getpass.getpass() 
print(password) 
+5

該死的很好。我不知道這件事,我感到很愚蠢。 – Rockybilly

+1

這是很棒的東西。 – innoSPG

+1

非常感謝您的幫助:D。 – LeroyJD

2

您可能需要檢查getpass函數。

提示用戶輸入密碼而不回顯。使用字符串提示(默認爲'Password:')提示用戶 。在Unix上, 提示被寫入類文件對象流。流默認爲 控制終端(/ dev/tty),或者 sys.stderr(在Windows上忽略此參數)不可用。

注意:此模塊模仿unix密碼提示並且不顯示星號。

用法:

import getuser 
getuser.getpass() 
+0

謝謝你的伴侶:D – LeroyJD

5

如果您使用Tkinter的:(這是Python的2.x的。然而,3.x的將是非常相似)

from Tkinter import * 

master = Tk() 

PassWord = Entry(master, bd=5, width=20, show="*") 
PassWord.pack() 

master.mainloop() 

在shell中,這是不是可能。然而,你可以編寫一個函數來存儲輸入的文本,並在被調用時只報告一串*。 Kinda like this,我沒有寫。我只是谷歌搜索。

+0

非常感謝:D ...即使它不在外殼中,它的作用就像一個魅力,我想我可能實際上在我的程序中使用了tk gui:D – LeroyJD

+3

雖然通配符導入似乎使代碼更整齊,更整齊,[使用它被認爲是一個不好的做法](http://stackoverflow.com/questions/14626674/in-python-is-it-a-good-practice-to -import-所有的屬性上帶有一個通配符)。 – Reti43

相關問題