You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:41:01