Tkinter askopenfilename()无法打开

时间:2018-06-27 21:56:20

标签: python python-3.x tkinter

我正在分析一些excel数据,并且最近添加了使用户能够打开文件浏览器并直观地定位文件的功能,这与在命令行中输入文件位置不同。我found this提出了一个问题(和答案)以使该窗口显示出来,该窗口工作了一段时间。

除了查找文件之外,我仍然在使用命令行进行所有操作。目前,这是我必须打开窗口的骨架(与上面链接的问题的答案几乎相同)

Tk().withdraw()
data_file_path = askopenfilename()

# other code with prompts, mostly print statements

Tk().withdraw()
drug_library_path = askopenfilename()

一旦代码到达代码的前两行,命令行就会像闪烁的光标一样坐在那里,就像它在等待输入(我的猜测是,askopenfilename()返回文件位置),但是什么也没发生。我也ctrl+C也无法退出程序。

我找到了this question,它与我要查找的内容很接近,但是我在Windows而不是Mac上,而且我什至无法打开窗口-我看到的大多数问题谈论无法关闭窗口。

感谢您的帮助!

注意:在程序的这一点上,尚未加载来自excel的数据。这是运行的第一行。

3 个答案:

答案 0 :(得分:0)

改为尝试=IF([@[Provider]]="","", (COUNTIF(Table2[Provider], A8))) 。它也基于tkinter构建,但是与filedialog不同,它是在没有完整GUI的情况下运行的。

由于您使用的是Windows,请在命令行中(而不是在python中)使用此命令来安装easygui:

easygui

然后尝试以下代码:

py -m pip install easygui

答案 1 :(得分:0)

我遇到了同样的问题,但是我发现问题是我在调用askopenfilename()或fileopenbox()之前获取了input()的输入。

from   tkinter            import Tk
from   tkinter.filedialog import askopenfilename

var = input()
Tk().withdraw()
filepath = askopenfilename()

我只是简单地切换了askopenfilename()(或fileopenbox())和input()的位置,就和往常一样工作了。

Tk().withdraw()
filepath = askopenfilename()
var = input()

答案 2 :(得分:0)

如果要使用内部模块,可以导入 tkFileDialog ,然后调用:

filename = tkFileDialog.askopenfilename(title="Open Filename",filetypes=(("TXT Files","*.txt"),("All Files","*.*")))

我在许多项目中都使用了它,您可以添加诸如initialdir之类的参数,并且可以指定允许的文件类型!