[英]Load an image that is in a subfolder using Pygame
我在名为“ Project”的文件夹中有一个Pygame项目。 这是我的代码和另一个名为“ Images”的文件夹。 我想在“ Images”文件夹中加载图像,但是每次尝试加载时都会出现错误,提示:
pygame.error:无法打开Images / Frame1.png
我试过使用:
image = pygame.image.load("Frame1.png")
,
image = pygame.image.load("Images/Frame1.png")
, image = pygame.image.load("Images/Frame1.png").convert()
和image = pygame.image.load("Images/Frame1.png").convert_alpha()
。
记住,我只导入了Pygame模块。
上面的所有代码都带有相同的错误。 我正在使用Mac OSX的Python v3.7.3。 任何帮助将不胜感激。
尝试导入os库并使用image = pygame.image.load(os.path.join(os.path.dirname(__file__), 'Images','Frame1.png')).convert_alpha()
。 当我做自己的pygame项目时,这对我有用。
映像文件路径必须相对于当前工作目录。 工作目录可能与python文件的目录不同。
可以通过以下方法调查差异:
import os
currentWorkDir = os.getcwd()
print(currentWorkDir)
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
print(sourceFileDir)
另请参阅与导入相关的模块属性 。
应用程序可以更改当前工作目录,使其与python源文件目录相同:
import os
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
os.chdir(sourceFileDir)
加载图像文件时,也可以使用绝对路径代替更改工作目录。 连接文件目录和相对图像文件路径:
sourceFileDir = os.path.dirname(os.path.abspath(__file__))
image = pygame.image.load(os.path.join(sourceFileDir, "Images", "Frame1.png"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.