Python 绕过tkinters';askopenfilename文件类型检查

Python 绕过tkinters';askopenfilename文件类型检查,python,tkinter,Python,Tkinter,我使用tkinters的askopenfilename和一些预定义的文件类型: tkinter.filedialog.askopenfilename(parent=self, title=_("Select Attachment"), multiple=False, initialdir=

我使用tkinters的askopenfilename和一些预定义的文件类型:

tkinter.filedialog.askopenfilename(parent=self,
                                   title=_("Select Attachment"),
                                   multiple=False,
                                   initialdir=initialdir,
                                   filetypes=filetypes)
文件类型包括“png”、“jpg”、“bmp”和

“文件”对话框将仅显示我所期望的指定类型的文件。 但是当我输入文件名时,它只会接受它,不管它是哪种类型


这是tkinter的bug吗?这是预期行为吗?我是否需要解决方法,或者我是否可以更改AskopenFileName的行为?

我希望这是预期的行为。毕竟--


因此,无论您做什么,用户都可以通过使用程序的一个白名单扩展名重命名文件来绕过它。当然,如果您真的想变得健壮,可以读取前几个字节,希望这是正确的;-)

当然,用户可以通过重命名来作弊。当文件不存在(从askopenfilename处理)或给定的文件类型意外(从我的代码处理)时,有不同的行为是很难看的。区别很明显…一方面askopenfilename保持打开状态,等待新的文件名,另一方面askopenfilename在无效文件名后关闭并重新打开。我从未意识到这是每个文件对话框的预期行为。