Tkinter询问文件对话框:避免internet链接

Tkinter询问文件对话框:避免internet链接,tkinter,hyperlink,format,filedialog,Tkinter,Hyperlink,Format,Filedialog,在我的程序中,我使用ask filedialog函数允许用户导入一些个人音乐,但我只接受.wav格式。所以我使用“filetypes=((“.wav”“+”format only“,“*.wav”),)”只允许扩展名为.wav的文件,但是它不阻止导入计算机上存在的internet链接的可能性,这是在快捷方式中使用的。 如何避免用户在此文件对话框中选择internet链接 谢谢你的帮助 (Python3.8.3,在Windows 10上使用Tkinter)我必须更正我之前在评论中的陈述。 这似乎是

在我的程序中,我使用ask filedialog函数允许用户导入一些个人音乐,但我只接受.wav格式。所以我使用“filetypes=((“.wav”“+”format only“,“*.wav”),)”只允许扩展名为.wav的文件,但是它不阻止导入计算机上存在的internet链接的可能性,这是在快捷方式中使用的。 如何避免用户在此文件对话框中选择internet链接

谢谢你的帮助


(Python3.8.3,在Windows 10上使用Tkinter)

我必须更正我之前在评论中的陈述。 这似乎是Python3.X实现中的一个缺陷

我刚刚用python2.7再次检查,并在Windows10上使用了一个“.url”文件(“互联网超链接”)

“.ink”-文件有效,“.url”-文件无效

Python2.7使用

from Tkinter import *
import tkFileDialog as filedialog

Python3.7使用

from tkinter import *
from tkinter import filedialog

为什么不使用os.path.exists(文件名)作为文件验证?(假设您使用tkFileDialog),因为我知道此方法是检查(使用True/False)路径是否存在,或者在本例中检查文件名,但我希望在filedialog中避免用户选择无法使用的文件(即使我的程序中已经有一个系统来检查格式是否可以使用)。我只是想了解,为什么即使我指定了特定的格式,用户也可以选择URL。这没有意义,我的意思是URL不是.wav文件,所以为什么我的URL会出现?为什么他们可以被选中???我们说的是什么样的url?file:///c/temp/x.wav 是uri/url,可以这样做。127.0.0.1/share/x.wav也是其中之一。File-that-is-a-link-with-extension.wav也是一个匹配的路径。你能给出一些具体的例子吗?好的,我明白了,因为在我的电脑上,例如,我放置了一个带有此页面链接的快捷方式,以便快速访问,所以在桌面上有“hyperlink-Tkinter ask filedialog避免internet链接-堆栈溢出”,但我仍然可以在askopenfilename函数中选择它,轻视这个URL不包含扩展名.wav的事实,那么这是Python3.x中的一个bug?