【问题标题】:How to automatically enter multi-line answers from questions in terminal with Python? [duplicate]如何使用 Python 从终端中的问题自动输入多行答案? [复制]
【发布时间】:2019-07-26 07:51:54
【问题描述】:

我正在从用 Node 编写的命令行应用程序的命令行上执行此操作:

openapi2apigee generateApi petStore -s '/Users/rafaelpaz/Documents/python/mapping-api_0.0.3.yml' -d /Users/rafaelpaz/Documents/python -D

这基本上连接到我的 google apigee 帐户并在本地生成一些文件给我。在终端上生成文件(仍然从命令行打开连接)后,我必须输入一些输入,然后按键盘上的 Enter 键输入每个输入以实现我想要的,即将这些文件部署到我的谷歌apigee 帐户(因为它超出了问题的范围,所以不做太多介绍)。这就是我要说的:

想知道是否有人有一个如何在 python 上自动执行此操作的示例,我的意思是输入所有这些输入。我将有一个 python web 应用程序,所以这段代码将在一个端点内。

【问题讨论】:

    标签: python python-3.x subprocess apigee apigee127


    【解决方案1】:

    最简单的方法是通过调用 shell。在使用 Bash 的地方(正如我们在 cmets 中讨论的那样),您可以使用字面量 heredoc,它将多行输入提供给进程的标准输入。

    首先是一个语法示例:

    command <<'EOF'
    input to command
    more input
    EOF
    

    所以这个案例:

    openapi2apigee generateApi petStore -s '/Users/rafaelpaz/Documents/python/mapping-api_0.0.3.yml' -d /Users/rafaelpaz/Documents/python -D <<'EOF'
    https://api.enterprise.apigee.com
    [organization]
    [user id]
    [password]
    test
    default
    EOF
    

    【讨论】:

    • 这在 shell 中完成了这项工作,而不是你在 Python 本身(没有 heredocs 的概念)中执行的方式。
    • 实际上我在终端的 python 中需要这个我可以做到:(
    • 我也希望能够在 Python 中做到这一点。我认为subprocess 模块会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 2020-01-22
    • 1970-01-01
    • 2022-08-15
    • 2023-02-05
    相关资源
    最近更新 更多