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

Telethon Bot循环异常及发送照片数量不符问题咨询

Telethon Bot 故障修复方案

故障根因分析

  • 故障1(再次触发功能失效):
    1. 你使用了全局变量i统计发送次数,首次触发完成后i的值不会重置,第二次触发时i初始值已经大于输入的照片数量,循环不会执行
    2. 原代码循环缩进错误,只有path = xxx一行在while循环内,会进入死循环,后续代码永远无法执行
  • 故障2(输入3张实际发4张):
    循环条件写为i <= numerofoto,i从0开始计数的话,循环执行次数为numerofoto + 1次,自然多发送1张

修复后代码

import random
import os
from telethon import TelegramClient, Button, events

# 替换为自己的接口参数
api_id = 你的api_id
api_hash = "你的api_hash"
bot_token = "你的bot_token"

bottoni = [
    [  
        Button.inline("invia foto", b"1"), 
        Button.inline("seconda opzione", b"2")
    ],
    [
        Button.inline("terza opzione", b"3"), 
        Button.inline("quarta opzione", b"4")
    ],
]
# 路径提取为全局常量,不需要循环内重复赋值
PHOTO_PATH = r"C:\path\to\folder\with\photos"

# 修复session名冲突问题,bot和userbot不能共用同一个session
bot = TelegramClient('bot_session', api_id, api_hash).start(bot_token=bot_token)
client = TelegramClient('userbot_session', api_id, api_hash)
print("bot e userbot startati!")

@bot.on(events.NewMessage(pattern="/start"))
async def start(event):
    await event.respond(".       --benvenuto nel bot--       .")

# 用(?i)忽略大小写,简化三个重复装饰器
@bot.on(events.NewMessage(pattern="(?i)opzioni"))
async def handler(event):
    await bot.send_message("myuser",".       --queste sono le opzioni--       .", buttons=bottoni)

@bot.on(events.CallbackQuery)
async def handler(event):
    # 非发照片按钮直接返回,避免误触发输入逻辑
    if event.data != b"1":
        await event.answer("功能开发中")
        return
    await event.respond("quante foto devo mandare? / guarda console") 
    numerofoto = int(input("quante foto devo mandare? "))
    # 用局部变量计数,每次触发自动重置
    send_count = 0
    # 循环条件改为<,避免多算一次
    while send_count < numerofoto:
        fotorandom = random.choice([
            os.path.join(PHOTO_PATH, x)
            for x in os.listdir(PHOTO_PATH)  
            if os.path.isfile(os.path.join(PHOTO_PATH, x))
        ])
        await event.reply(file=fotorandom)
        send_count += 1

内容的提问来源于stack exchange,提问作者kekkoilmedikit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:24:04