在执行工具后,在终端输入一些输入信息。

问题描述 投票:0回答:1

需要写一段代码,在linux终端中执行一个工具,并填写它的问题,例如有一个叫xyztool的工具,它有两个标志"-H "表示远程IP地址,"-U "表示获取用户名。

例如有一个叫xyztool的工具,它有两个标志"-H "代表远程IP地址,"-U "代表获取用户名。旧密码, 新密码重新输入新密码.

我想写一个执行工具的代码,然后自动一个个输入。

$ xyztool -U admin
Old password: ****
New password: *****
Retype New password: *****

这是我已经写好的,但是我真的不知道如何使用IO模块,所以我只是试了一下!我想写一段代码,在linux终端执行一个工具,然后自动一个一个的输入。

#!/usr/bin/env python3

import subprocess
import sys
import io

def main_cmds():
    '''execute xyztool and fill its prompts out'''
    cmds = subprocess.call(["xyztool", "-H", "172.16.10.10", "-U", "admin"])

print(main_cmds())


def go_run():
    f1 = sys.stdin
    f = io.StringIO('oldP@ssw0rd')
    sys.stdin = f
    main_cmds()
    f.close()
    sys.stdin = f1

print(go_run())
python terminal subprocess
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.