绕过tkinters的askopenfilename文件类型检查

时间:2014-01-08 08:18:30

标签: python tkinter

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

tkinter.filedialog.askopenfilename(parent=self,
                                   title=_("Select Attachment"),
                                   multiple=False,
                                   initialdir=initialdir,
                                   filetypes=filetypes)

文件类型包括'png','jpg','bmp',...

filedialog只会显示我预期的指定类型的文件。 但是当我输入文件名时,无论它是哪种类型,它都会接受它。

这是tkinter的错误吗?这是预期的行为吗?我是否需要解决方法或是否可以更改askopenfilenames的行为?

1 个答案:

答案 0 :(得分:0)

我希望这是预期的行为。毕竟 - You can't actually know the file's data type until you open it up

因此,无论您做什么,用户只需使用程序的白名单扩展名重命名文件即可绕过它。当然,如果你真的想要健壮,你可以阅读前几个字节和check the magic number并希望这是正确的; - )。