如何使用python自动化shell输入?

如何使用python自动化shell输入?,python,unix,shell,Python,Unix,Shell,我正在用python自动化一些任务,但遇到了一些障碍。我正在自动化的任务之一需要用户在shell中输入 要求您以电子邮件地址作为参数运行命令(足够简单),然后要求您使用该电子邮件地址的密码进行身份验证。如何模拟用户输入以提供密码 之后还有一些菜单询问选项,输入只需反复点击回车键即可。这是如何模拟的?请记住,此窗口并不总是有焦点。我想您可以使用它。看起来您的思维方式不对。您只需要通过管道将一些字节发送给收件人(在您的情况下是shell脚本),这可以用来完成。我不确定您在第二部分中的要求,但子流程可

我正在用python自动化一些任务,但遇到了一些障碍。我正在自动化的任务之一需要用户在shell中输入

要求您以电子邮件地址作为参数运行命令(足够简单),然后要求您使用该电子邮件地址的密码进行身份验证。如何模拟用户输入以提供密码


之后还有一些菜单询问选项,输入只需反复点击回车键即可。这是如何模拟的?请记住,此窗口并不总是有焦点。

我想您可以使用它。

看起来您的思维方式不对。您只需要通过管道将一些字节发送给收件人(在您的情况下是shell脚本),这可以用来完成。

我不确定您在第二部分中的要求,但子流程可以通过
pexpect
模块来控制。例如:

#!/usr/bin/env python

import pexpect
import sys

# Get email and password somehow
#email = ...
#password = ...

# Start the subprocess
child = pexpect.spawn('mycommand %s' % email)
# redirect output to stdout
child.logfile_read = sys.stdout

# Assumes the prompt is "password:"
child.expect('password:')
child.sendline(password)

# Wait for the process to close its output
child.expect(pexpect.EOF)