getpass()在末尾追加回车(在eclipse中)

时间:2016-02-10 22:32:58

标签: python eclipse getpasswd

当我在eclipse中运行以下代码时,getPass会返回一个以末尾带有回车符的字符串。

但是,当我在命令提示符下运行相同的代码时,它运行没有任何问题。

import paramiko
import getpass

userPwd = getpass.getpass()
print ('You have entered ',userPwd)

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('ese.rnd.sanl.se', username='abc', 
    password=userPwd)
stdin,stdout,stderr=ssh.exec_command("ls")
data1=stdout.read().splitlines();

for line in data1:
    print (line)

输出(Eclipse):

Warning: Password input may be echoed.
Password: Mypassword@123
('You have entered ', 'Mypassword@123\r')

输出(命令提示符):

Warning: Password input may be echoed.
Password: Mypassword@123
('You have entered ', 'Mypassword@123')

任何人都可以解释这种歧义吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我怀疑eclipse设置为使用windows换行符,即' \ r \ n'。您需要将其设置为使用UNIX新行(' \ n')

基本上,这意味着python方法' getpass()'正在砍掉缓冲区中的最后一个字符。由于您提供了两个字符,因此缺少\ r。

Look here了解如何修改此选项。