【发布时间】:2019-03-22 17:51:49
【问题描述】:
我是一名 Informix 4GL 开发人员。由于可维护性,我的任务是编写一个包装器来自动化基于 4GL 表单的命令行应用程序上的一些任务。
有谁知道如何在 python 上做到这一点? (我也会学习其他语言,但 Python 是我的首选)。
我的想法是使用“键盘”来模拟按键...(我知道很难看)。
问题是,正如我所建议的那样,用 python 或其他语言重写整个应用程序并不适合我的老板。 (应用程序大约有 30 年的历史,数据库也是如此......它很乱)
【问题讨论】:
-
检查其中一个
[python] [informix]是否满足您的需求。 -
如果 I4GL 程序是基于 curses 的(curses 的非标准版本,但仍然基于 curses),您可以考虑使用像
expect(或它们的 Python 等价物)这样的工具与 I4GL 程序交互。但是,即使有expect-like 包的支持,编写一个程序来做到这一点也不会很有趣。你使用哪种语言的expect-like 代码无关紧要——我假设有这样的 Python 包; Perl 有。另外,您是在使用(早已失效的)产品 Informix 4GL Forms,还是在使用 I4GL 程序中的通用表单? -
你有源代码吗?可以编译源代码吗?您是否考虑过使用命令行参数而不是基于 curses 的输入来驱动程序?这可能更容易管理。需要进行一些代码更改,但可能比编写一个在键盘上伪装成人类的程序要容易得多。
-
@stovfl 谢谢,但其中大部分是 python 谈论 Informix db 而不是表单。
-
@JonathanLeffler 是的,他们有一个 Python 的期望库,遗憾的是它不会在这里做,因为你猜我正在使用长期死的产品 Informix 4GL 表单,你必须用左右键导航它和 esc 确认选择,我不知道只是传递参数的方法。我会问我是否可以对 4GL 源代码进行这些更改以使用命令行参数运行它(我确实有源代码并且可以编译它)。我认为这是我的解决方案,因为丑陋的键盘输入模拟。
标签: python command-line informix 4gl