【问题标题】:Running a python script with inputs from another python script [duplicate]使用来自另一个 python 脚本的输入运行 python 脚本[重复]
【发布时间】:2021-01-24 12:04:03
【问题描述】:

我有很多 python 脚本要运行,我想自动化它们。它们都在特定时间接受输入(在本例中为 3 个)。我已经尝试过这样的事情,但由于 echo 没有 EOF 它不起作用:

os.system("echo 4 | echo 5 | echo 6 | python script.py")

我无法更改 script.py 的内容,并且它不接受参数。

如何使用一行 python 代码自动输入?谢谢。

【问题讨论】:

  • 您的 shell 代码只需将 6 输入到 Python 脚本中。管道输入到echo 没有意义,因为它忽略了它的标准输入。可能你的意思是printf '%s\n' 4 5 6 | python script.py。更好的解决方案通常是import script 并在现有脚本中运行它,而不是作为子进程(尽管在某些情况下您确实需要两个进程,例如当您需要能够中断或终止子进程时)父母)。

标签: python input


【解决方案1】:

查看Pexpect:

Pexpect 是一个纯 Python 模块,用于生成子应用程序; 控制它们;并响应其输出中的预期模式。 Pexpect 的工作方式类似于 Don Libes 的 Expect。 Pexpect 允许您的脚本 生成一个子应用程序并像人类打字一样控制它 命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 2015-03-11
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    相关资源
    最近更新 更多