一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python實現控制臺輸入密碼的方法

Python實現控制臺輸入密碼的方法

2020-07-09 08:51lovebread Python

這篇文章主要介紹了Python實現控制臺輸入密碼的方法,實例對比分析了幾種輸入密碼的方法,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Python實現控制臺輸入密碼的方法。分享給大家供大家參考。具體如下:

1. raw_input() :

?
1
2
3
4
pwd = raw_input('password: ')
print pwd
# password: aaa
# aaa

Note: 最簡單的方法,但是不安全

2. getpass.getpass() :

?
1
2
3
4
5
import getpass
pwd = getpass.getpass('password: ')
print pwd
# password:
# aaaa

Note: 很安全,但是看不到輸入的位數,會讓人覺得有點不習慣,不知道的還以為沒有在輸入..

3. msvcrt.getch() :

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import msvcrt, sys
def pwd_input():
  chars = []
  while True:
    newChar = msvcrt.getch()
    if newChar in '\r\n':
    # 如果是換行,則輸入結束
      print ''
      break
    elif newChar == '\b':
    # 如果是退格,則刪除末尾一位
      if chars:
        del chars[-1]
        sys.stdout.write('\b')
        # 刪除一個星號,但是不知道為什么不能執行...
    else:
      chars.append(newChar)
      sys.stdout.write('*')
      # 顯示為星號
  print ''.join(chars)
pwd = pwd_input()
print pwd
# ******
# aaaaaa

Note: 解決了第二種方法不能顯示輸入位數的問題,但是如果按退格鍵(backspace)的話,雖然實際的是退格了,

但控制臺卻沒有顯示相應的退格,比如,當前輸入是:abcd,顯示為:****,然后現在打一個退格鍵,實際

輸入為:abc,而顯示仍為:****。不知道為什么 sys.stdout.write('\b') 這行沒有執行,估計是和使用msvcrt.getch()有關系。感興趣的朋友可以進一步研究一下。

希望本文所述對大家的Python程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 深夜福利在线播放 | 亚洲黄色色图 | 全彩成人18h漫画 | 精品免费久久久久久成人影院 | 国内体内she精视频免费 | 亚洲福利一区二区精品秒拍 | 手机看片一区二区 | 韩国三级2020 | 超级毛片 | 国产肥老上视频 | 8x8x华人免费 | 欧美四区| 久久国产精品二区99 | 男女天堂| 久久爽狠狠添AV激情五月 | 好大好湿好硬好爽好深免费视频 | 91精品国产高清久久久久 | 91大神第九部红酒气质女 | 国产高清免费午夜在线视频 | 成人欧美一区二区三区白人 | 青草碰人人澡人人澡 | 深夜影院深a久久 | 99精品久久精品一区二区小说 | 男人狂躁女人下半身 | 啊好大好粗 | 日韩伦理在线看 | 成人精品亚洲人成在线 | 亚洲网站在线 | 99在线视频精品费观看视 | 精品久久99麻豆蜜桃666 | 久久不射电影网 | 波多野结衣作品在线观看 | 学校女性奴sm训练调教 | 日韩免费在线观看 | h动态图男女啪啪27报 | 日本高清色视影www日本 | 日本不卡在线观看免费v | 性欧美xxxxx护士另类 | 关晓彤被调教出奶水的视频 | 精品一二三区久久AAA片 | 日韩日b视频|