通过关键模拟从Python(在Windows上)与外部程序进行交互的最佳方法?

时间:2018-07-05 21:36:11

标签: windows python-3.x subprocess

快速摘要:我想调用Windows 7中的Python(3.6)外部程序,然后与之交互。我不知道执行此操作的最佳方法,因此现阶段我只是在寻找从哪里开始的建议。

我不能使用常规的输入/输出,所以我认为我需要模拟用户交互,也许需要通过按键模拟。

详细信息:

这是一个很瘦的问题:我有一个小的可执行文件,可用于将专有图像格式转换为我可以使用的更通用的格式。我想将其合并到我的项目中,因此解决方案的用户不必自己运行该其他程序。

据我所知,有问题的.exe文件没有命令行功能(我没有文档)。它被设置为允许在“文件”菜单上使用Windows Alt键快捷方式功能,因此我希望我能够以一种(有点棘手且肯定不可靠的)解决方案使该交互自动化。

一旦调用了外部程序,我所能输入的就是:

  • 文件>打开快捷方式(打开标准的Windows界面)
  • 将原始文件路径一次迭代一个字符,然后发送Enter键
  • 文件>导出
  • 迭代输出文件路径一次一个字符(然后发送回车)
  • 稍等片刻,然后关闭外部程序

除了在磁盘上创建输出文件外,外部程序不会产生任何输出。

我可以使用(例如)运行程序

import subprocess subprocess.run ("C:\\blah\\program.exe")

但是我注意到,直到我将其关闭为止,这似乎不允许与我的Python代码的下一步进行进一步的交互。

我分别找到了这样的解决方案... https://stackoverflow.com/a/13615802/10039438

...用于模拟孤立地工作的按键(和组合),但是在program.exe仍然是最主要的程序的情况下,我看不到让它们执行的简单方法。

我是否应该考虑替代策略?

注意:当前在Windows 7上使用Python 3.6。

0 个答案:

没有答案