gpt4 book ai didi

python - 如何将数据重定向到 "getpass"之类的密码输入?

转载 作者:太空狗 更新时间:2023-10-30 00:15:32 24 4
gpt4 key购买 nike

我正在编写一个 python 脚本来运行一些命令。其中一些命令要求用户输入密码,我确实尝试在他们的标准输入中输入数据,但它不起作用,这里有两个简单的 python 程序代表问题

输入.py

import getpass

print raw_input('text1:')
print getpass.getpass('pass1:')
print getpass.getpass('pass2:')

put_data.py

import subprocess
import getpass

def run(cmd, input=None):
stdin=None
if input:
stdin=subprocess.PIPE
p = subprocess.Popen(cmd, shell=True, stdin=stdin)
p.communicate(input)
if p.returncode:
raise Exception('Failed to run command %r' % cmd)

input ="""text1
password1
password2
"""
run('python test.py', input)

这是输出

[guest@host01 ~]# python put_data.py 
text1:text1
pass1:

它只是停在 pass1 字段上。这就是问题所在,为什么我不能将数据放入标准输入以将数据提供给密码字段?如何将数据写入密码字段?

最佳答案

您需要 pexpect这种情况下的模块。

Pexpect is a Python module for spawning child applications and controlling them automatically. Pexpect can be used for automating interactive applications such as ssh, ftp, passwd, telnet, etc.

关于python - 如何将数据重定向到 "getpass"之类的密码输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4826732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com