Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让我的机器人发送图像,以及如何创建关闭它的命令?_Python - Fatal编程技术网

Python 如何让我的机器人发送图像,以及如何创建关闭它的命令?

Python 如何让我的机器人发送图像,以及如何创建关闭它的命令?,python,Python,我试图创建一个机器人,它可以用一位老师的诙谐回答或一张图片来回复文本。然而,当我写“chungus”这个词时,机器人并没有回答任何问题。我试着在那行打印一些东西,但它不起作用。此外,我还编写了一个命令,尝试关闭bot,并在其关闭时发送文本,但这也不起作用。如果你还没弄明白的话,我是python新手 编辑:我试图为图像回复创建一个命令,所以我也编辑了代码 编辑:新错误如下所示 Ignoring exception in command chungus: Traceback (most recent

我试图创建一个机器人,它可以用一位老师的诙谐回答或一张图片来回复文本。然而,当我写“chungus”这个词时,机器人并没有回答任何问题。我试着在那行打印一些东西,但它不起作用。此外,我还编写了一个命令,尝试关闭bot,并在其关闭时发送文本,但这也不起作用。如果你还没弄明白的话,我是python新手

编辑:我试图为图像回复创建一个命令,所以我也编辑了代码

编辑:新错误如下所示

Ignoring exception in command chungus:
Traceback (most recent call last):
  File "C:\Users\Andrei\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "c:/Users/Andrei/cnvagalati/botdiscord.py", line 49, in chungus
    await ctx.channel.send(file=discord.File(paul9_path))
  File "C:\Users\Andrei\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\file.py", line 73, in __init__
    self.fp = open(fp, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'c:/Users/Andrei/cnvagalati/botdiscord.py\\images\\paul9.jpg'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Andrei\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\bot.py", line 903, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\Andrei\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 859, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\Andrei\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: FileNotFoundError: [Errno 2] No such file or directory: 'c:/Users/Andrei/cnvagalati/botdiscord.py\\images\\paul9.jpg'
编辑:文件路径:

C:\USERS\ANDREI\CNVAGALATI
├───.vscode
└───images

该错误表示当前目录中没有任何名为
paul9.jpg
的文件。这是正确的,因为您的文件位于
images/

您需要给出相对于当前目录的正确路径

如果message.content==“chungus”:
wait message.channel.send(file=discord.file('images/paul9.png'))
印刷品(“呼呼呼呼”)
但是,这是一个相对路径,如果您不从与脚本本身相同的目录运行脚本,那么它就不是非常健壮。相反,您应该使用函数

如果您的目录结构看起来像-

C:\USERS\ANDREI\CNVAGALATI
├───.vscode
├───images
├   └───paul9.jpg
└───botdiscord.py
然后您可以像这样获得到
CNVAGALATI
的路径

导入操作系统
project\u dir=os.path.dirname(\u文件\u)
现在,您需要获得
图像的路径

images\u dir=os.path.join(project\u dir,'images')
现在,每当您需要图像目录中任何文件的路径时。您只需
os.path.join(图像\u目录,文件名)

因此对于文件
paul9.jpg

paul9_path=os.path.join(images_dir,'paul9.jpg')

您现在可以使用将此传递到
discord.File

错误意味着
pal9.jpg
在当前目录中不存在。除非你告诉我们完整的目录,否则我们帮不了你structure@Chase我的目录结构是C:/Users/Andrei/cnvagalati/botdiscord.py/paul.jpg请准确地发布文件路径。这是非常重要的。您发布了一个文件的路径,该文件甚至没有命名为
paul9.jpg
,甚至没有-您的路径表明
paul.jpg
文件位于名为
botdiscord.py
的文件夹中,文件夹不能有该名称。请看我的坏消息这是路径:``卷操作系统的文件夹路径列表卷序列号是E235-1A8C:。└───.vscode``请将完整结构粘贴到您的帖子中。没有评论。在postyeah的正下方有一个
edit
按钮。你说得对,但我仍然有一个问题,我该如何调用cnvagalati文件夹?就像我像字符串一样编写,或者只是
project\u dir=os.path.dirname(cnvagalati)
?请注意,
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。因此,如果您使用
os.path.dirname(\uuuu file\uuuuuu)
,它会直接为您提供
CNVAGALATI
文件夹的路径。你不必做任何其他事情
project_dir
是通往该文件夹的路径哦,对了,我实际上是在问如何写那行代码,我以为我必须用cnvagalati替换
\uuuu file\uuuuuuuu
,我试过了,但仍然得到同样的错误。也许我应该给你一个up@andrei4563请发布错误消息,它在什么路径中查找?
C:\USERS\ANDREI\CNVAGALATI
├───.vscode
├───images
├   └───paul9.jpg
└───botdiscord.py