如何使两个Python程序通信?

2024-04-19 10:36:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个Python程序,一个是IRC bot,使用套接字连接到IRC服务器。在

这个程序有一个从特定通道读取每个PRIVMSG的循环。在

第二个程序应该获得第一个程序输出的任何内容(在本例中是PRIVMSG),并用它运行函数。在

所以,基本上是:

while 1:
    data = irc.recv(2048)
    if data.find("PRIVMSG " + current_channel + " :") != -1:
        send_to_second_program(data)

第二个项目是

^{pr2}$

有没有办法不使用模块来实现这一点?这两个程序应该是分开的。在


Tags: 函数程序服务器内容dataifircbot
3条回答

假设两个程序都在同一目录中,您可以使用import导入另一个文件

例如,考虑一个文件a.py。要将其导入另一个文件b.py,请使用import a,然后使用a.something访问文件a.py中定义的内容

虽然您可以使用字面上几十种沟通方式,而且您没有提供上下文或要求,但我假设您正在处理一个小项目。我建议您使用rpc(远程过程调用)。使用rpc可以调用另一个应用程序的Python函数,就好像它是本地可用的函数一样。查看一些Python的rpc库,比如http://www.zerorpc.io/,这对于您的用例来说已经足够了。在

使用rpc有一些缺点,你可以在this question的答案中读到,但是如果范围是有限的,我认为这是实现目标的最简单的、非黑客的方法之一。在

  1. 通过JSON(restapi)。它是面向服务的体系结构。所以,你可以扩展你的应用程序。在
  2. Message queue上,它也是可伸缩的,但可靠性不高。在

相关问题 更多 >