Файл не найден Ошибка отображения изображений с помощью Tkinter - PullRequest
0 голосов
/ 18 февраля 2020

Итак, у меня есть список файлов и выбран случайный файл, затем изображение должно быть отображено.

Код, который у меня есть, выглядит следующим образом:

    def DisplayQ(self):
        dir = path.dirname(__file__)
        examQ_dir = path.join(dir, 'Exam Questions')
        questions = os.listdir(examQ_dir)  # put the files into a list
        question = random.choice(questions)
        img = ImageTk.PhotoImage(Image.open(question))
        img.place(x=100, y=100)

У меня есть проверяя каждый раздел по отдельности во время его реализации, и все правильные файлы помещаются в список, так как я хочу, чтобы они также выбирались случайным образом, когда я этого хочу, но проблема в том, что я получаю сообщение об ошибке каждый раз, когда я запускаю его, говоря:

 File "C:\Users\cj_he\AppData\Local\Programs\Python\Python37\lib\site-packages\PIL\Image.py", line 2809, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'Particle Q3.png'

, чего я не понимаю, потому что я могу go в свои файлы, и я вижу, что файл там, и я могу открыть его, но по какой-то причине python не может найти файл , Я использую PyCharm IDE. Любые предложения о том, что проблема?

1 Ответ

2 голосов
/ 18 февраля 2020

При перечислении вы указываете путь. Но при чтении файла вы передаете только имя файла. Вам нужно добавить путь перед именем файла во время открытия файла.

Попробуйте это:

import os

def DisplayQ(self):
        dir = path.dirname(__file__)
        examQ_dir = path.join(dir, 'Exam Questions')
        questions = os.listdir(examQ_dir)  # put the files into a list
        question = random.choice(questions)
        img = ImageTk.PhotoImage(Image.open(os.path.join(examQ_dir, question)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...