找不到文件,文件不存在(jpg)

时间:2019-04-18 03:54:37

标签: python image tkinter

找不到文件,没有这样的文件或目录

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 :(得分:0)

也许完整路径而不只是文件名就能解决您的问题。

答案 1 :(得分:0)

似乎在此代码中。您没有使用Image和ImageTk,或者您引用了错误的示例。

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

正确的代码行应为

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

您可以尝试更改和执行。我刚试过,它正在工作。

答案 2 :(得分:0)

与.py文件位于同一文件中并不重要-python不在此查找文件。它会在您当前的工作目录中查找文件,该文件可能与脚本的位置不同。

如果要查找与脚本相同的文件夹,则需要使用以下内容进行计算:

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

您的代码中还有其他问题,例如tkinter不支持.jpg文件和img参数未采用打开文件句柄,但以上内容回答了您所遇到的“找不到文件”问题询问。