I’m trying to make a discord bot using python 3.8 and discord.py in pycharm. The bot’s function is to read a text file and write out each word as a separate message and send it into a discord server. Now I have the text file and it can print out the words but it can’t do it separately.
Below is the relevant code:
f = open("test.py") @client.event async def on_message(message): if message.content.startswith('r!help'): channel = message.channel await channel.send('Help') elif message.content.startswith('r!start'): channel = message.channel await channel.send('Starting Story...') await channel.send(f.readlines())
I read some other answers where they stated that f.readlines()
would resolve the issue but that left it sending only one line of text. I tried
def script_message(): with open('words.txt','r') as f: for line in f: for word in line.split(): print(word)
and then trying to call the function with await channel.send(script_message())
but that leaves me with errors where it’s asking me to correct the syntax. So how can I send the contents of the text file as separate messages?
Advertisement
Answer
async def script_message(channel): with open("words.txt") as f: data = f.readlines() for i in data: for j in i.split(" "): await channel.send(j)
And in your on_message
event
elif message.content.startswith('r!start'): await message.channel.send('Starting Story...') await script_message(message.channel)