首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >运行时对Python程序的外部输入

运行时对Python程序的外部输入
EN

Stack Overflow用户
提问于 2018-07-30 17:04:59
回答 1查看 320关注 0票数 1

我正在创建一个测试自动化,它使用没有任何接口的应用程序。但是,应用程序在更改模式时会调用批处理脚本,因此我能够捕获模式转换。

我想要做的是让批处理脚本在运行时为我的python脚本(我有一个运行在python中的状态机)提供一个输入。这样我就可以使用python而不是批处理文件来监控应用程序的状态。

我使用的是与Karn Saheb类似的状态机:https://dev.to/karn/building-a-simple-state-machine-in-python

但是,与静态更改状态不同,如下所示:

代码语言:javascript
复制
device.on_event('event')

我想让python脚本做一些类似的事情:

代码语言:javascript
复制
while(True):
    device.on_event(input()) # where the input is passed from the batch script:

REM state.bat
set CurrentState=%1
"magic code to pass CurrentState to python input()" %CurrentState%

我认为一个解决方案是每次使用" event“从批处理文件中启动python脚本,然后在python脚本终止时将当前事件保存在另一个文件中……但我希望避免这样的处理,而是在运行时对其进行评估。

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 03:26:37

在不对临时文件进行难看的轮询的情况下,一种合理的可移植方法是使用套接字:让主进程listen并让批处理文件启动一个小程序,该程序连接到服务器并写入一条消息。

这里有一些安全方面的注意事项:您可以从只侦听环回接口开始,如果本地计算机不应该被信任,则使用进一步的身份验证。

如果您有多个这样的进程,或者如果您需要在子进程发出下一个报告之前处理它的死亡,您将不得不使用线程或类似select的东西来统一来自不同输入通道的消息(例如,等待子进程退出与等待来自下一个批处理文件的消息)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51590422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档