Import pygame
pygame.init()
BG = pygame.image.load('_pycache_/test_bg.jpg')
def DrawGameWin():
window.blit(BG,(0,0))
pygame.display.update()
DrawGameWin()
Не удалось открыть файл ресурсов, ошибка pygame: «FileNotFoundError: нет такого файла или каталога».
Ответы (1)
Путь к файлу ресурса (изображение, шрифт, звук и т. д.) должен относиться к текущему рабочему каталогу. Рабочий каталог, возможно, отличается от каталога файла python.
Недостаточно поместить файлы в один и тот же каталог или подкаталог. Вам также необходимо установить рабочий каталог. Кроме того, вы можете создать абсолютный путь к файлу.
Имя и путь к файлу можно получить с помощью __file__
. Текущий рабочий каталог можно получить с помощью os.getcwd()
и изменить с помощью os.chdir(path)
:
import os
os.chdir(os.path.dirname(os.path.abspath(__file__)))
Альтернативное решение — найти абсолютный путь.
Если файл находится в подпапке файла 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, 'test_bg.jpg')
# filePath = os.path.join(sourceFileDir, '_pycache_/test_bg.jpg')
surface = pygame.image.load(filePath)
Того же можно добиться с помощью модуля pathlib
.
Измените рабочий каталог
import os, pathlib
os.chdir(pathlib.Path(__file__).resolve().parent)
или создайте абсолютный путь к файлу:
import pathlib
# [...]
filePath = pathlib.Path(__file__).resolve().parent / 'test_bg.jpg'
surface = pygame.image.load(filePath)
Сообщение об ошибке звучит так, будто файл не найден на жестком диске. Пожалуйста, проверьте ваш текущий рабочий каталог, а также путь к файлу, который вы хотите открыть!
Они оба у меня на рабочем столе в папке. Я не знаю, что делать дальше. Куда мне переместить изображения, которые я хочу загрузить.
Здесь вы можете увидеть, как проверить текущий рабочий каталог. Пожалуйста, проверьте правильность ваших предположений. В качестве альтернативы вы также можете указать полный путь на данный момент, но это разрушит переносимость, поэтому просто сделайте это как последний вариант.
может я не понимаю. Запустил программу показал путь. Я положил оба в одну папку на рабочем столе. это не тот же путь? Разве это не должно решить проблему?
Путь запуска (другими словами, текущий рабочий каталог) важен, а не папка, в которой находится ваш файл.