Python - 文本文件的内容作为单独的消息发布,而不是使用 Discord.py bot 的一条消息
Python - Contents of text file being posted as separate messages rather than one message using Discord.py bot
我目前正在尝试 post 使用 Discord.py
将文本文件的内容发送到不和谐频道
文本文件内容如下:
Competition English Premier League - Week 35
Competitors Wolves v Everton
Match Date Sunday, 12th July
Match Time ST: 12:00
Channels: beIN Connect MENA
beIN Sports MENA 11 HD
beIN Sports MENA 2 HD
Belarus 5 Internet
Belarus 5 TV
上面的文本文件的结构是我试图将文本文件中的数据输出到 discord 的方式。
目前,当我 运行 我的代码(posted 下面)时,信息正确显示,但上面文本文件的每一行都作为单独的不一致消息输出,但我需要所有post作为一条消息编辑的内容。
Discordbot.py
import discord
client = discord.Client()
@client.event
async def on_member_join(member):
for channel in member.guild.channels:
if str(channel) == "general":
await channel.send_message(f"""Welcome to the server {member.mention}""")
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content == "!test":
with open('/home/brendan/Desktop/finaltestng.txt', 'r') as file:
data = file.readlines()
for line in data:
print(line)
await message.channel.send(line)
client.run("*******")
我试图将代码更改为:
if message.content == "!test":
with open('/home/brendan/Desktop/finaltestng.txt', 'r') as file:
data = file.readlines()
await message.channel.send(data)
使用更改后的代码,我能够按要求将完整的输出作为一条消息接收,但格式不正确
['Competition English Premier League - Week 35 \n', 'Competitors Wolves v Everton \n', 'Match Date Sunday, 12th July \n', 'Match Time ST: 12:00 \n', 'Channels: beIN Connect MENA :tv:\n', ' \xa0 beIN Sports MENA 11 HD \n', ' \xa0 beIN Sports MENA 2 HD \n', ' \xa0 Belarus 5 Internet \n', ' \xa0 Belarus 5 TV \n', '\n']
从这一点来看,我不确定前进的最佳方式是什么。
提前感谢任何能够就此问题提出建议或提供解决方案的人。
你的代码中的问题是你将文件中的每一行作为新消息发送,而不是你可以做的是使用 file.read()
读取文件一次并发送一次。
将此更改为
for line in data:
print(line)
await message.channel.send(line)
这个
await message.channel.send(file.read().strip())
我目前正在尝试 post 使用 Discord.py
将文本文件的内容发送到不和谐频道文本文件内容如下:
Competition English Premier League - Week 35
Competitors Wolves v Everton
Match Date Sunday, 12th July
Match Time ST: 12:00
Channels: beIN Connect MENA
beIN Sports MENA 11 HD
beIN Sports MENA 2 HD
Belarus 5 Internet
Belarus 5 TV
上面的文本文件的结构是我试图将文本文件中的数据输出到 discord 的方式。
目前,当我 运行 我的代码(posted 下面)时,信息正确显示,但上面文本文件的每一行都作为单独的不一致消息输出,但我需要所有post作为一条消息编辑的内容。
Discordbot.py
import discord
client = discord.Client()
@client.event
async def on_member_join(member):
for channel in member.guild.channels:
if str(channel) == "general":
await channel.send_message(f"""Welcome to the server {member.mention}""")
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content == "!test":
with open('/home/brendan/Desktop/finaltestng.txt', 'r') as file:
data = file.readlines()
for line in data:
print(line)
await message.channel.send(line)
client.run("*******")
我试图将代码更改为:
if message.content == "!test":
with open('/home/brendan/Desktop/finaltestng.txt', 'r') as file:
data = file.readlines()
await message.channel.send(data)
使用更改后的代码,我能够按要求将完整的输出作为一条消息接收,但格式不正确
['Competition English Premier League - Week 35 \n', 'Competitors Wolves v Everton \n', 'Match Date Sunday, 12th July \n', 'Match Time ST: 12:00 \n', 'Channels: beIN Connect MENA :tv:\n', ' \xa0 beIN Sports MENA 11 HD \n', ' \xa0 beIN Sports MENA 2 HD \n', ' \xa0 Belarus 5 Internet \n', ' \xa0 Belarus 5 TV \n', '\n']
从这一点来看,我不确定前进的最佳方式是什么。
提前感谢任何能够就此问题提出建议或提供解决方案的人。
你的代码中的问题是你将文件中的每一行作为新消息发送,而不是你可以做的是使用 file.read()
读取文件一次并发送一次。
将此更改为
for line in data:
print(line)
await message.channel.send(line)
这个
await message.channel.send(file.read().strip())