gpt4 book ai didi

Python - 希望在两个脚本都运行时将数据从一个脚本传递到另一个脚本

转载 作者:太空宇宙 更新时间:2023-11-03 11:59:53 24 4
gpt4 key购买 nike

所以我正在制作一个 Discord 机器人,当有人在 Twitch.tv 上直播时它会发帖。目前我有一个运行机器人的 Python 程序和一个运行迷你服务器以从 Twitch 服务器(webhook)接收数据的程序。我不确定如何将从我的服务器收到的数据传递给 discord 机器人。这两个程序必须同时运行。

DiscordBot

import discord


client = discord.Client()




async def goes_live(data):
print(data)
print('Going Live')
msg = '--- has gone live'
await client.send_message(discord.Object(id='---'), msg)


@client.event
async def on_message(message):
if message.author == client.user:
return

message.content = message.content.casefold()


@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')


client.run('---')

网络服务器

import web

urls = ('/.*', 'hooks')

app = web.application(urls, globals())


class hooks:

def POST(self):
data = web.data()
print("")
print('DATA RECEIVED:')
print(data)
print("")

return 'OK'

def GET(self):
try:
data = web.input()
data = data['hub.challenge']
print("Hub challenge: ", data)
return data
except KeyError:
return web.BadRequest



if __name__ == '__main__':
app.run()

最佳答案

因为你的两个程序都是用 python 编写的,并且如果它们彼此足够相关以至于它们总是一起运行,你可以简单地使用 multiprocessing 模块:让每个程序作为一个 multiprocessing.Process 实例,并为每个实例提供 multiprocessing.Pipe 的一端,这样您就可以在进程之间交换信息。

架构看起来像 main.py:

# main.py
from multiprocessing import Process, Pipe
import program_1
import program_2

program_1_pipe_end, program_2_pipe_end = Pipe()

process_1 = Process(
target = program_1.main,
args = (program_1_pipe_end,)
)

process_2 = Process(
target = program_2.main,
args = (program_2_pipe_end,)
)

process_1.start()
process_2.start()
#Now they are running
process_1.join()
process_2.join()
# program_1.py and program_2.py follow this model

# [...]

# instead of if __name__ == '__main__' , do:
def main(pipe_end):
# and use that pipe end to discuss with the other program
pass

您可以找到 Pipe documentation here ,(在多处理文档中)。

关于Python - 希望在两个脚本都运行时将数据从一个脚本传递到另一个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52225311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com