【问题标题】:"FileNotFoundError" When Importing PNG Files for Python [duplicate]为 Python 导入 PNG 文件时出现“FileNotFoundError”[重复]
【发布时间】:2021-04-11 20:50:24
【问题描述】:

我正在阅读 Space Invaders 的基本 pygame 教程,结果我很早就被卡住了,令人尴尬。每当我尝试从资产文件夹中导入我的文件(是的,它与我的代码位于同一目录中)时,我都会遇到 filenotfound 错误。这是我的代码...

import pygame
import os
import time
import random



RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", 'pixel_ship_red_small.png'))
GREEN_SPACE_SHIP = pygame.image.load(os.path.join('assets', "pixel_ship_green_small.png"))
BLUE_SPACE_SHIP = pygame.image.load(os.path.join('assets', "pixel_ship_blue_small.png"))
YELLOW_SPACE_SHIP = pygame.image.load(os.path.join('assets', "pixel_ship_yellow.png")) #player ship

RED_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_red.png"))
GREEN_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_green.png"))
BLUE_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_blue.png"))
YELLOW_LASER = pygame.image.load(os.path.join("assets", "pixel_laser_yellow.png"))

BG = RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", "background-black.png"))

我也尝试过 CURRENT_PATH = os.path.dirname("assets")...

CURRENT_PATH = os.path.dirname("assets")
RED_SPACE_SHIP = pygame.image.load(os.path.join(CURRENT_PATH, 'pixel_ship_red_small.png'))

它真正给我的只是加载时间稍长,但结果相同。

【问题讨论】:

  • 是所有文件都出现错误还是其中一个文件出现错误?错误很清楚,检查文件名是否实际匹配。它通常是一些愚蠢的东西,比如下划线实际上是一个连字符,或者一些字母被大写......
  • 所有这些和标题名称都会出现错误,我尝试将连字符换成下划线,反之亦然。我什至尝试在最后删除 .png 以获得相同的结果。

标签: python pygame


【解决方案1】:

请检查文件大小是否不为零字节。这是我试图演示的代码。我使用了 2 个图像:smiley.png(142461 bytes) 和一个空图像 - pixel_ship_red_small.png (0 bytes)

import pygame
import os

print('size of the file: ', os.stat(os.path.join("assets", 'smiley.png')).st_size, 'bytes')
smiley = pygame.image.load(os.path.join("assets", 'smiley.png'))
print('dimensions: ', smiley.get_size())

# print('size of the file: ', os.stat(os.path.join("assets", 'pixel_ship_red_small.png')).st_size, 'bytes')
# RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", 'pixel_ship_red_small.png'))
# print('dimensions: ', RED_SPACE_SHIP.get_size())

输出:

pygame 2.0.1 (SDL 2.0.14, Python 3.9.1)
Hello from the pygame community. https://www.pygame.org/contribute.html
size of the file:  142461 bytes
dimensions:  (530, 532)

如果你使用空图像,它会抛出以下错误:

import pygame
import os

RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", 'pixel_ship_red_small.png'))

输出:

pygame 2.0.1 (SDL 2.0.14, Python 3.9.1)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "D:\Python\temp.py", line 11, in <module>
RED_SPACE_SHIP = pygame.image.load(os.path.join("assets", 'pixel_ship_red_small.png'))
FileNotFoundError: No such file or directory.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 2018-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    相关资源
    最近更新 更多