Python 在错误的目录中搜索图像

Python searching for image in wrong directory

我正在尝试将一些资产加载到我的程序中,我将它们放在名为 'Graphics' 的文件夹中,该文件夹位于文件夹 'Snake' 中,该文件夹位于文件夹 'Projects' 中,位于文件夹 'Python' 内。但是,在该文件夹 'Python' 中还有另一个名为 'HelloWorld'.

的文件夹

我正在尝试在 'Snake' 中 运行 的程序中加载一些资产,而 Python 正在 'HelloWorld' 文件夹中搜索资产(是我用来保存 python 文件的地方。

我收到错误:

FileNotFoundError: No file 'Projects/Snake/Graphics/apple.png' found in working directory 'C:\Users192\OneDrive - WC\Desktop\Python\HelloWorld'

我认为为此我必须更改 vs code 的默认目录。我已经更改了命令提示符的默认目录,但它什么也没做。也许这是因为我在命令提示符中的python 运行 与vs代码中的不同(?)

我该如何解决这个问题?

提前致谢。

编辑: 这就是我当前加载图像的方式: apple = pygame.image.load('Projects\Snake\Graphics\apple.png').convert_alpha()

您不需要更改默认目录。只需从完整目录加载。这应该类似于:"C:\Users\...\Python\Snake\Graphics\apple.png".

使用pathlib 构建图像的路径。您必须在代码中添加 import pathlib

pathlib.Path(__file__) 将为您提供当前文件的路径。 pathlib.Path(__file__).parent 会给你文件夹。现在您可以使用 / 运算符构造路径。

尝试以下代码并检查输出。

import pathlib

print(pathlib.Path(__file__))
print(pathlib.Path(__file__).parent)
print(pathlib.Path(__file__).parent / 'Grahics' / 'apple.png')

现在您可以将整个项目移动到一个完全不同的文件夹,而无需调整任何代码。


您的代码示例如下所示:apple = pygame.image.load('Projects\Snake\Graphics\apple.png').convert_alpha()

如果您导入 pathlib,您可以用动态方法替换它:

path_to_image= pathlib.Path(__file__).parent / 'Grahics' / 'apple.png'
apple = pygame.image.load(path_to_image).convert_alpha()

我很确定 pygame 可以使用 pathlib 中的路径。如果不是,那么您必须手动将路径转换为字符串

apple = pygame.image.load(str(path_to_image)).convert_alpha()

我认为最简单的方法是首先通过简单地输入来查看您的活动目录 pwd,然后你可以简单地通过 cd("C:/path/to/location") 更改目录,记住你必须使用反斜杠,或者只使用以下库:

import os
os.chdir("C:/path/to/location")

正如 pydragon 发布的那样,您也可以通过给导入函数一个路径来导入它。