如何使用Python调用Discord API发送代码格式消息?
如何用Python调用Discord API发送格式化代码块?
我懂你遇到的问题了——你试着分三次发送消息来拼接代码块,但Discord会把这三条消息当成独立内容,自然没法形成一个完整的代码块。其实解决方法很简单:把整个代码块的内容放在同一条消息里发送就行!
针对使用client.say的discord.py版本(v1.x)
你可以直接把完整的代码块字符串作为参数传给client.say,不用拆分发送:
async def example(ctx): # 用多行字符串包裹完整代码块 code_content = """```python print('Hello world!') ```""" await client.say(code_content)
或者更简洁的写法,直接拼接成单条字符串:
async def example(ctx): await client.say("```python\nprint('Hello world!')\n```")
针对新版discord.py(v2.x,推荐使用)
如果是较新的版本,client.say已经被弃用了,改用ctx.send(),写法类似:
async def example(ctx): await ctx.send("```python\nprint('Hello world!')\n```")
小技巧:动态生成代码块
如果你的代码内容是动态生成的,还可以用字符串格式化来插入内容:
async def send_code(ctx, code_snippet): # 动态插入代码到代码块中 await ctx.send(f"```python\n{code_snippet}\n```")
为什么之前的写法不行?因为Discord的代码块格式要求```包裹的内容必须是单条消息的完整内容,分开发送的话每一段都是独立文本,不会被识别成一个连贯的代码块。把所有内容整合到一个字符串里一次性发送,就能正确触发Discord的代码格式渲染啦。
内容的提问来源于stack exchange,提问作者user8658069
相关产品推荐
相关产品推荐

