やりたいこと
Discord bot上でtxtファイルないしcsvファイルを作成し、ファイルとして送信するDiscord botの実装を行います。
実装
ここでは例として、members
が(ID, ユーザー名, ポイント)のタプルのリストを形成しているとして、そこからメンバー表のcsvファイルを作る、という内容だとして書いてます。
import io
import discord
from discord.ext import commands
#中略
bot = commands.Bot()
#中略
#csv文字列を作成
csv = "ID,name,points\n"
for row in members:
(id, name, points) = row
csv += "%i,%s,i\n"%(id, name, points)
#csvファイル化して送信
with io.StringIO(csv) as file:
await bot.get_channel(CHANNEL).send(file=discord.File(file, "members.csv"))
#後略
要するに、文字列をファイル化して送信する際は下記のようにすればいいということです。
text = #ファイル化したい文字列
with io.StringIO(text) as file:
await (送りたいチャンネル).send(file=discord.File(file, "ファイル名"))