【问题标题】:How to solve file not found problem in python?如何解决python中找不到文件的问题?
【发布时间】:2020-10-22 13:32:51
【问题描述】:

我制作了一个程序,我需要 python 文件所在目录中的文件。这些文件位于 python 文件所在的同一文件夹中。

我无法在 python 脚本中写入文件的完整路径 我在脚本中使用了 ./ 方法,但它给出了错误

请帮我解决问题

这是我的代码

'''

#代码

root=Tk()
root.title("SOHAM YOUTUBE VIDEO DOWNLOADER")
root["bg"]='#1F1F1F'
root.iconbitmap("./img/youtube_(1).ico")
root.geometry("900x680")

file =PhotoImage(file="./img/youtube-icon.png")
headingIcon=Label(root, image=file)
headingIcon.pack(side=TOP, pady=3)

'''

我的文件夹位置

这里 img 是我在 YOUTUBE_VEDIO_DOWNLOADER.py 中所需的文件夹,这是我的 python 文件

我的脚本错误如下

y"python "e:/python projects/YOUTUBE VIDEO DOWNLOADER/YOUTUBE_VIDEO_DOWNLOADER.py
Traceback (most recent call last):
  File "e:\python projects\YOUTUBE VIDEO DOWNLOADER\YOUTUBE_VIDEO_DOWNLOADER.py", line 215, in <module>
    root.iconbitmap("./img/youtube_(1).ico")
  File "C:\Users\soham\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 2073, in wm_iconbitmap
    return self.tk.call('wm', 'iconbitmap', self._w, bitmap)
_tkinter.TclError: bitmap "./img/youtube_(1).ico" not defined

【问题讨论】:

  • 要显示代码,在代码块前后放置三个反引号 ```。不是单引号。
  • 这个错误显然意味着该文件不存在。我已经在没有 ico 文件的情况下测试了您的代码,它显示了相同的错误。然后我只创建一个 empty ico 文件(文件大小为零)并且脚本运行没有错误。

标签: python tkinter location tkinter.iconbitmap


【解决方案1】:

使用__file__ 变量,然后获取其父变量。

例子:

from pathlib import Path

my_dir = Path(__file__).parent

以后,如果函数理解Path对象,你可以直接使用my_dir,或者先使用str()

# if root.iconbitmap accepts Path objects
root.iconbitmap(my_dir / "img/youtube_(1).ico")

#or

# if root.iconbitmap does not accept Path objects
icopath = str(my_dir / "img/youtube_(1).ico")
root.iconbitmap(icopath)

【讨论】:

  • 当然可以。我没有看到您的错误消息,所以它可以工作。
  • ERROR $ python "e:/python projects/YOUTUBE VIDEO DOWNLOADER/YOUTUBE_VIDEO_DOWNLOADER.py" Traceback(最近一次调用最后):文件“e:\python projects\YOUTUBE VIDEO DOWNLOADER\YOUTUBE_VIDEO_DOWNLOADER.py” ,第 220 行,在 root.iconbitmap(icopath) 文件“C:\Users\soham\AppData\Local\Programs\Python\Python39\lib\tkinter_init_.py”中,第 2073 行, 在 wm_iconbitmap 返回 self.tk.call('wm', 'iconbitmap', self._w, bitmap) _tkinter.TclError: bitmap "e:\python projects\YOUTUBE VIDEO DOWNLOADER\img\youtube_(1)" 未定义
  • 您的文件名为 youtube_(1) 还是 youtube_(1).ico ?另外,下次你应该编辑你的问题,说你正在尝试我的建议,并在那里输入错误消息。
  • 对不起先生,我忘了说我已经尝试过你的代码,也感谢你花时间解决我的问题
  • @SOHAMDASBISWAS。好吧,如果答案对您有用,请用复选标记标记答案。这向其他人表明问题已解决,并且有令人满意的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 2022-01-22
  • 1970-01-01
  • 2016-08-11
  • 2021-11-30
  • 1970-01-01
  • 2021-12-05
相关资源
最近更新 更多