python 执行linux命令后怎样输入密码

python 执行linux命令后怎样输入密码,第1张

一、使用工具:python、linux

二、方法步骤:有三种方法

1、 最简单的方法,但是不安全

raw_input() :

pwd = raw_input('password: ')

print pwd

# password: aaa

# aaa

2、很安全,但是看不到输入的位数,会让人觉得有点不习惯,不知道的还以为没有在输入

getpass.getpass() :

import getpass

pwd = getpass.getpass('password: ')

print pwd

# password:

# aaaa

3、

msvcrt.getch() :

代码如下:

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

三、注意事项:第三种方法解决了第二种方法不能显示输入位数的问题,但是如果按退格键(backspace)的话,虽然实际的是退格了,

但控制台却没有显示相应的退格,比如,当前输入是:abcd,显示为:****,然后现在打一个退格键,实际

输入为:abc,而显示仍为:****。不知道为什么 sys.stdout.write('\b') 这行没有执行,估计是和使用msvcrt.getch()有关系。感兴趣的朋友可以进一步研究一下。

有两种方式:1、直接使用python xxxx.py执行。其中python可以写成python的绝对路径。使用which python进行查询。

2、在文件的头部(第一行)写上#!/usr/bin/python2.7,这个地方使用python的绝对路径,就是上面用which python查询来的结果。然后在外面就可以使用./xxx.py执行了。

因为在linux中,python啊shell这些程序都是普通的文本格式,都需要一种程序去解释执行它。要么调用的时候指定,要么在文件头指定。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8519465.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存