【问题标题】:Can I run an interactive bash script from python?我可以从 python 运行交互式 bash 脚本吗?
【发布时间】:2016-06-14 21:27:17
【问题描述】:

我正在尝试构建一个 python GUI 应用程序,它需要运行 bash 脚本并捕获它们的输出。这些脚本中使用的大多数命令都需要在运行时进一步输入,因为它们处理网络和远程系统。

【问题讨论】:

  • 所以你知道subprocess。提示:subprocess.Popen

标签: linux bash python-3.x subprocess


【解决方案1】:

Python 的subprocess 模块允许人们轻松运行外部程序,同时提供各种便利性和可定制性选项。

要运行不需要交互的简单程序,functionscall()check_call()check_output()(省略参数)非常有用。

对于需要与正在运行的程序交互的更复杂的用例,可以使用Popen Objects,您可以在其中自定义输入/输出管道以及许多其他选项 - 上述函数是这些对象的包装器。您可以通过提供的方法poll()wait()communicate()等与正在运行的进程进行交互。

同样,如果communicate() 不适用于您的用例,您可以通过Popen.stdinPopen.stdoutPopen.stderr 获取PIPE 的文件描述符,并通过@987654324 直接与它们交互@。我更喜欢Polling Objects :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2013-06-19
    相关资源
    最近更新 更多