我写了个python去一键下载安装软件,可是有些程序安装的时候需要判断Y或者N的我该怎么办

clipboard.png
例如这种情况,有没办法让python直接判断出现了判断,并自动输入Y,
或者如何扫描到这几条指定的语句,用if判断,再自动输入Y。

阅读 1.9k
1 个回答

python有个pexpect模块,可以模拟用户交互式输入,但是维护起来相对麻烦,可能还会因为环境问题不具有通用型。所以是实在没招的情况下再考虑。

你有很多办法可以规避交互式:

  1. 看看软件开发商有没有提供对应操作系统的软件包 or 软件仓库,直接走package manager部署或直接安装对应的软件包 (上上策,优先考虑,比如你的XMPP,其实有deb/rpm包安装)
  2. 官方或第三方维护的自动部署脚本,通常也会提供非交互式选项,调用shell接口跑非交互式参数,也可以规避因为交互式打断执行的问题 (中策)
  3. 编译安装。通常编译安装的过程都是非交互式的,但是维护起来难度很高,通常不做首选考虑(下策)
  4. expect/pexpect脚本。难以维护,难以做到通用性,通常实在没招了再考虑,用了这个方案就别指望在所有环境都能稳定跑了(下下策)
推荐问题