файл не найден, файл не существует (jpg) - PullRequest
0 голосов
/ 18 апреля 2019

Файл не найден, такого файла или каталога нет

from tkinter import *
from PIL import Image, ImageTk
import os
import sys

root = Tk() # Create the root (base) window 
root.title("tkinter experiment")
root.iconbitmap("knuckes_-_Copy.ico")

canvas = Canvas(root, width=210, height=210, background="bisque")
canvas.pack(side="bottom", fill="both", expand=True)

img = open("knuckles.jpg", "r")
panel = Label(root, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")

root.mainloop()

Я ожидаю, что файл "knuckles.jpg" будет сохранен в переменной img для последующего использования в окне, вместо этого терминал вернет, что файл не существует, даже если он находится в том же каталоге, что и. py файл.

журнал ошибок:

Traceback (most recent call last):
  File "Image.py", line 14, in <module>
    img = open("knuckles.jpg", "r")
FileNotFoundError: [Errno 2] No such file or directory: 'knuckles.jpg'

Ответы [ 3 ]

0 голосов
/ 18 апреля 2019

Кажется в этом коде. вы не используете Image и ImageTk или вы указали неверный пример.

img = open("knuckles.jpg", "r")

Правильная строка кода должна быть

img = ImageTk.PhotoImage(Image.open("knuckles.jpg","r"))  

Вы можете попробовать изменить и выполнить. Я только что попробовал, и это работает.

0 голосов
/ 18 апреля 2019

Не имеет значения, находится ли он в том же файле, что и файл .py - это не то, где python ищет файлы. Он ищет файлы в вашем текущем рабочем каталоге, которые могут отличаться от местоположения скрипта.

Если вы хотите посмотреть в ту же папку, что и скрипт, вам нужно вычислить это примерно так:

import os.path
...
script_dir = os.path.dirname(__file__)
image_file = os.path.join(script_dir, "knuckles.jpg")

У вас есть другие проблемы в вашем коде, такие как tkinter не поддерживает файлы .jpg и параметр img не принимает дескриптор открытого файла, но приведенный выше ответ отвечает на вопрос «файл не найден», о котором вы спрашивали ,

0 голосов
/ 18 апреля 2019

Возможно, полный путь, а не просто имя файла, решит вашу проблему.

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