【问题标题】:Python input interfering with SimpleXMLRPCServerPython 输入干扰 SimpleXMLRPCServer
【发布时间】:2016-02-05 15:20:56
【问题描述】:

我有一个这样的服务器:

from SimpleXMLRPCServer import SimpleXMLRPCServer
def ack(msg):
    return input("Allow? ").lower() in ['y', 'yes']
server = SimpleXMLRPCServer(("localhost", 8080))
server.register_function(ack, "ack")
server.serve_forever()

还有一个客户:

import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8080")

with open(myfile) as mfd:
    for line in mfd.readlines():
        if proxy.ack(line):
            print line

这会导致向客户端发送故障。故障代码和字符串为:

1
<type 'exceptions.NameError'>:name 'y' is not defined

我的假设是input 在服务器端的消耗正在扼杀 POST XML-RPC 的好处。

我不想用two clients and a server 编写一些方法——我有点喜欢我正在进行的简单的 1:1 设置。

真的,我愿意接受任何替代 (python) 解决方案。

【问题讨论】:

  • 旁白:感谢您提供完整、简洁的MCVE

标签: python simplexmlrpcserver


【解决方案1】:

你使用的是input(),而你应该使用raw_input()。试试这个:

return raw_input("Allow? ").lower() in ['y', 'yes']

【讨论】:

  • 你是对的,但从 python 文档中我不清楚为什么你是正确的---你愿意详细说明吗?谢谢!是因为input() 的“评估”部分吗?
猜你喜欢
  • 2014-04-12
  • 1970-01-01
  • 2011-11-30
  • 2021-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 1970-01-01
相关资源
最近更新 更多