1、这次用到的是tk下面的tkFileDialog模块,是GUI编程下的一个模块。我们用到的是askopenfilename这个函数
2、下面是典型代码。(注意:te是程序内文本控件的变量名,可忽略)
3、我们看到第一行,我们给函数设置了一个参数作为默认的浏览路径(实际目录应该是Python27)。因为如果这个浏览路径是无效的话,那么默认浏览路径就是“桌面”;如果不设置这个参数,那默认浏鼙裸魅暹览路径是脚本文件所在路径
4、在代码的第二行,这行代码的目的是处理没有选择任何文件的情况。因为很可能我们打开了浏碎茯钍婵览窗口而不选择任何文件。没有这个代码,这里就是bug。那现在我们的程序大致运行就没有问题了
5、但是呢,一旦我们用这部分代码尝试去打开一个文本文档,那么情况很可能会是这样的:没错,是编码的问题。
6、这里我们需要处理一下编码问题。因为Python代码默认是使用utf8编码的,而我们的文本文档使用的却是gbk的编码。对于编码问题我们在后续文章会重点解决一下。
7、显而易见的是,作为特定的文件的虼骧墁疱浏览,最好设置特定文件的文本类型的过滤,这样就会减少软件需要处理的未知的文件类型的数量。就好比软件说明书,明明告诉你只支持文本文件的打开了,用户偏偏拿去打开wor颊俄岿髭d文档,怪你咯~
8、所以,常常的,我们需要在函数的参数里,增加过滤类型这个参数。虽然并没有从本质上解决编码问题,但是作为整个小软件的架构上,还是无懈可击了。