Я все время получаю эту ошибку: не удалось открыть файл

Я пытаюсь отобразить изображение с помощью pygame, но получаю такую ​​ошибку:

Отслеживание (последний вызов последним): файл «H: /profile/desktop/untitled/venv/Scripts/AhjaiyGame.py», строка 28, в start = pygame.image.load (os.path.join (папка, «wecvguh .png ")) pygame.error: Не удалось открыть H: \ profile \ desktop \ untitled \ venv \ Scripts \ wecvguh.png

Блок кода:

import sys
import random
import os
import subprocess
import pygame
pygame.init()
GUI = pygame.display.set_mode((800,600))
pygame.display.set_caption("The incredible guessing game")
x = 284
y = 250
width = 68
length = 250
run = True
while run:
 for event in pygame.event.get():
    if event.type == pygame.QUIT:
        run =False
 if event.type == pygame.KEYDOWN:
  command = "python AhjaiyCPT.py"
  subprocess.call(command)


 pygame.display.update()


folder = os.path.dirname(os.path.realpath(__file__))

start = pygame.image.load(os.path.join(folder, "wecvguh.png"))
   def img(x,y):
        gameDisplay.blit(start, (x,y))
    while run:
        gameDisplay.fill(white)
        start(x, y)


pygame.quit()

person HamiClash    schedule 16.01.2019    source источник
comment
Можете ли вы убедиться, что ваш wecvguh.png существует в файловой системе по адресу: H: \ profile \ desktop \ untitled \ venv \ Scripts \ wecvguh.png? Можете ли вы также посмотреть разрешения, предоставленные этому изображению?   -  person Nathan    schedule 16.01.2019
comment
Я исправил ошибку, переместив изображение, но изображение не отображается   -  person HamiClash    schedule 16.01.2019


Ответы (1)


В коде есть два цикла «выполнения», поэтому он никогда не попадает во второй цикл.

Отступы в коде перепутаны - может из вставки в SO ?. Подавляющее большинство программистов используют для отступа 4 пробела. Вероятно, это хороший обычай.

Код также загружал "начальное" изображение на каждой итерации цикла, в этом нет необходимости (если он не изменяется на диске, в этом случае используйте os.stat() для проверки изменений перед повторной загрузкой).

Переработанный основной цикл:

folder = os.path.dirname(os.path.realpath(__file__))
start  = pygame.image.load(os.path.join(folder, "wecvguh.png"))

run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            command = "python AhjaiyCPT.py"
            subprocess.call(command)

    gameDisplay.fill(white)
    gameDisplay.blit(start, (x,y))
    pygame.display.update()

pygame.quit()
person Kingsley    schedule 17.01.2019