Python Discord骰子机器人日志问题:无法保存骰子结果
解决Discord骰子机器人日志无法记录掷骰结果的问题
你的代码核心问题是:生成了掷骰结果列表dice,但写入日志文件时仅写入固定文本'Dice results:\n',没有将实际的掷骰结果追加进去。
修改后的代码
import random # 确保已导入discord.py相关模块及bot实例 @bot.command(name='diceroll', help='Simulates rolling dice.') async def roll(ctx, number_of_dice: int, number_of_sides: int, *args, **kwargs): dice = [ str(random.choice(range(1, number_of_sides + 1))) for _ in range(number_of_dice) ] result_str = ', '.join(dice) # 将结果写入日志文件 with open('dicerolls.log', 'a') as f: f.write(f'Dice results: {result_str}\n') await ctx.send(result_str)
关键修改说明
- 先将
dice列表转换为字符串result_str,既用于发送Discord消息,也用于写入日志,避免重复代码 - 在写入日志时,把
result_str拼接进写入文本,让日志完整记录每次的掷骰结果 - 可选优化:如果需要追踪掷骰时间,可添加时间戳(取消以下代码注释即可)
from datetime import datetime timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') f.write(f'[{timestamp}] Dice results: {result_str}\n')
内容的提问来源于stack exchange,提问作者Bladesmith Productions
相关产品推荐
相关产品推荐

