当前位置: 首页 > 知识库问答 >
问题:

如何在 Pycharm 中添加 32px png 作为新文件,以便我的脚本可以找到它?

干旺
2023-03-14

我在学习Py游戏的入门教程,但是在视频的某个时候,我们可以看到他在屏幕左侧有一个“ufo.png”作为Py

他解释了如何从flaticon下载文件。com(32px),但不知道如何将其导入Pycharm。我试着滑到选项卡栏中,创建一个新的选项卡,其中包含文件,它可以工作,但脚本找不到它。这可能是因为尽管文件是一个新的选项卡,但它不会出现在右侧的文件夹中,不像视频中的“main.py”或“ufo.png”。

无论如何,这是我目前的剧本。

import pygame

# Initialize the pygame
pygame.init()

#create the screen
screen = pygame.display.set_mode((800, 600))

#Title and Icon
pygame.display.set_caption("Space Invaders")
icon = pygame.image.load('ufo (1).png')
pygame.display.set_icon(icon)

#Game Loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
    #RGB - Red, Green, Blue
    screen.fill((67, 44, 123))

这是我收到的错误消息

Traceback (most recent call last):  
  File "D:\Users\xxxxx\PycharmProjects\SpaceInvader\main.py", line 11, in <module>
    icon = pygame.image.load('ufo (1).png')
FileNotFoundError: No such file or directory.

Process finished with exit code 1

编辑:我对这些操作系统的东西一无所知,我的问题怎么会是“无法打开资源文件:pygame”的副本。错误:无法打开sprite/test_bg。jpg?请让我问我的问题,我没有足够的Python级别来理解这两个问题之间的联系。请

共有1个答案

龙哲
2023-03-14

资源(图像、字体、声音等)文件路径必须相对于当前工作目录。工作目录可能与python文件的目录不同。

文件的名称和路径可以通过< code>__file__获得。当前工作目录可以通过< code>os.getcwd()获取,也可以通过< code>os.chdir(path)更改。

如果文件在 python 文件的子文件夹中(甚至在同一文件夹中),那么您可以获取文件的目录并加入 (os.path.join()) 相对文件路径。例如:

import pygame
import os

# get the directory of this file
sourceFileDir = os.path.dirname(os.path.abspath(__file__))

# [...]

# join the filepath and the filename
filePath = os.path.join(sourceFileDir, 'YOUR FILE DIRECTORY/ufo (1).jpg')

icon = pygame.image.load(filePath)
 类似资料:
  • 问题内容: 我有一个托管所有Django应用程序的目录。我想将此目录添加到我的目录中,PYTHONPATH以便直接调用应用程序。 我尝试从Windows GUI()添加变量中My 。但是它仍然不读取模块并生成此错误: 错误:没有名为coltrane的模块 问题答案: 你知道在Windows上对我非常有效的方法。 只需将路径添加为(或安装python的任何位置) 然后在系统变量下创建一个名为的新变量

  • 问题内容: 我已经编辑了package.json以自定义“开始”脚本,因此它将–debug标志添加到节点: 有没有一种方法可以添加新脚本,例如调试脚本,该脚本可以执行我自定义的“开始”现在正在执行的操作? 我希望能够执行: 问题答案: 在您的package.json中定义脚本 然后您可以使用npm的运行脚本 或更短的版本

  • 我使用Soap用户界面来测试我的网络服务。每次我想执行我的测试请求时,我都需要更新定义。我知道有可能添加Groovy脚本来让WSDL自动更新。但是我不知道我应该添加这个脚本来使它工作。有人能描述一下我每次执行请求时需要做的使这个脚本运行的步骤吗?

  • 在我的php脚本中,我有一个简单的username/email exists条件,但是我想把这个错误(如果存在的话)放在html的某个地方,这样我就可以设置它的样式并将它放置在我的表单上。Echo只是把它放在左上角。我该怎么做?设置变量似乎不是最佳解决方案。

  • 我们可以在从 BLOB 存储下载文件时在微软办公文档中添加水印文本吗? 我的分析正在使用 AIP - Azure 信息保护进行。