单击机器人电报中的按钮后发送 x 张照片
sending x photos after i click a button in a bot telethon telegram
@bot.on(events.CallbackQuery)
async def handler(event):
global fotomandate
global i
if event.data == b"1":
await event.respond("how many photos do i send?")
numerofoto = int(input("how many photos do i send?")) ##ignore this line i'll fix later
print (numerofoto)
while i < numerofoto:
path = (r"C:\Users\x\Desktop\Nuova cartella (2)")
fotorandom = random.choice([
x for x in os.listdir(r"C:\Users\x\Desktop\Nuova cartella (2)")
if os.path.isfile(os.path.join(path, x))
])
i += 1
await event.reply(file=fotorandom)
我需要从目录发送 n(在电报输入中)随机照片,但它说
ValueError:无法将 bonni media-jpg 转换为媒体。不是现有文件、HTTP URL 或类似 bot-API 的有效文件 ID
如错误所述:
ValueError: Failed to convert bonni media-jpg to media. Not an existing file, an HTTP URL or a valid bot-API-like file ID
在循环守卫内部,您正在做 os.path.join(path, x)
。但是,您的 x
不包含完整路径。然后在工作目录中搜索该文件,但没有找到。您也需要在那里指定正确的路径:
fotorandom = random.choice([
os.path.join(path, x) # <- new
for x in os.listdir(path) # <- better to avoid repeating dir
if os.path.isfile(os.path.join(path, x))
])
@bot.on(events.CallbackQuery)
async def handler(event):
global fotomandate
global i
if event.data == b"1":
await event.respond("how many photos do i send?")
numerofoto = int(input("how many photos do i send?")) ##ignore this line i'll fix later
print (numerofoto)
while i < numerofoto:
path = (r"C:\Users\x\Desktop\Nuova cartella (2)")
fotorandom = random.choice([
x for x in os.listdir(r"C:\Users\x\Desktop\Nuova cartella (2)")
if os.path.isfile(os.path.join(path, x))
])
i += 1
await event.reply(file=fotorandom)
我需要从目录发送 n(在电报输入中)随机照片,但它说
ValueError:无法将 bonni media-jpg 转换为媒体。不是现有文件、HTTP URL 或类似 bot-API 的有效文件 ID
如错误所述:
ValueError: Failed to convert bonni media-jpg to media. Not an existing file, an HTTP URL or a valid bot-API-like file ID
在循环守卫内部,您正在做 os.path.join(path, x)
。但是,您的 x
不包含完整路径。然后在工作目录中搜索该文件,但没有找到。您也需要在那里指定正确的路径:
fotorandom = random.choice([
os.path.join(path, x) # <- new
for x in os.listdir(path) # <- better to avoid repeating dir
if os.path.isfile(os.path.join(path, x))
])