【问题标题】:Message parsing system in PythonPython中的消息解析系统
【发布时间】:2013-05-30 03:11:33
【问题描述】:

我不断接收串行输入并将收到的消息存储在队列中。

我想解析这个队列中的消息并用它们做不同的事情。

例如,如果我收到消息“KEY0”,我想调用我的函数 Key0()。

如果我收到消息“LOGXrandom message”,我想将“random message”写入文件 logx.txt,如果消息是“LOGYrandom message”,则写入 logy.txt。

创建可以执行此类操作的系统的最佳方法是什么?

【问题讨论】:

    标签: python function dynamic input message


    【解决方案1】:

    这不是很简单,

    • 从您的队列订阅消息接收事件
    • 提取命令
    • 使用 switch 案例

    我是否正确理解了这个问题?

    【讨论】:

    • 我意识到这是微不足道的。我不会问我个人是否觉得这是微不足道的,我不明白你的意思。
    • 我写的不是很清楚,你在期待什么?
    • 我不知道您所说的“订阅收到的消息事件”是什么意思。那是什么意思?我不知道您所说的“提取命令”是什么意思。你能提供一个正在使用的例子吗?
    • 要回答这些问题,您需要知道您使用的是哪个队列,每个队列在消息到达时都会引发一个事件,必须订阅它以恢复有效负载,然后从有效负载这可能是一个字符串,您需要解析命令,然后根据这些命令,您需要使用 switch case 语句来选择适当的方法或任务来执行,这可能是记录或调用另一个方法。如果您想要矿石,那么您需要描述到目前为止您已经尝试过什么以及困扰您的问题
    • 我在问你“订阅”和“提取”是什么意思。我以前从未听说过使用它。你不明白我的意思吗?
    【解决方案2】:

    假设模块 'keys' 使用方法 'key0':

    import keys
    methodToCall = getattr(keys, 'key0')
    result = methodToCall()
    

    就这点而言,第 2 行和第 3 行可以压缩为:

    result = getattr(keys, 'key0')()
    

    【讨论】:

      猜你喜欢
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多