在Python3中选择文件

在Python3中选择文件,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,Python3中的tkFileDialog模块在哪里?该问题引用了以下模块: from Tkinter import Tk from tkFileDialog import askopenfilename 但是在Python3中使用它(将Tkinter更改为Tkinter后)会得到: Traceback (most recent call last): File "C:\Documents and Settings\me\My Documents\file.pyw", line 5, in

Python3中的tkFileDialog模块在哪里?该问题引用了以下模块:

from Tkinter import Tk
from tkFileDialog import askopenfilename
但是在Python3中使用它(将Tkinter更改为Tkinter后)会得到:

Traceback (most recent call last):
  File "C:\Documents and Settings\me\My Documents\file.pyw", line 5, in <module>
    import tkFileDialog
ImportError: No module named tkFileDialog
但它没有给出新名称的提示,在3.2.2文档中搜索tkFileDialog和askopenfilename根本不会返回任何结果(甚至不会返回从旧名称到新子模块名称的映射)

尝试显而易见的事情是不行的,杰克:

from tkinter import askopenfilename, asksaveasfilename
ImportError: cannot import name askopenfilename

在Python3中如何调用askopenfilename()的等价物?

如前所述,您正在查找
tkinter.filedialog


通过在python解释器中运行
help(filedialog)
,可以查看
filedialog
中的方法/类。我认为
filedialog.LoadFileDialog
就是您要找的东西。

您可以尝试以下方法:

from  tkinter import *
root = Tk()
root.filename =  filedialog.askopenfilename(initialdir = "E:/Images",title = "choose your file",filetypes = (("jpeg files","*.jpg"),("all files","*.*")))
print (root.filename)
root.withdraw()

您需要先导入filedialog,可以按如下操作:

from  tkinter import *
from tkinter import filedialog

root = Tk()

root.filename =  filedialog.askopenfilename(initialdir = "/", title = "Select file")
print (root.filename)

root.mainloop()

文件对话框
无法通过tkinter导入中的
获得
。您必须从tkinter.filedialog导入askopenfilename
。我刚刚添加了root.draw()调用,以删除讨厌的窗口。我的代码在Python 3.4中运行得很好,最好在调用对话框之前放置
root.draw()。
from  tkinter import *
root = Tk()
root.filename =  filedialog.askopenfilename(initialdir = "E:/Images",title = "choose your file",filetypes = (("jpeg files","*.jpg"),("all files","*.*")))
print (root.filename)
root.withdraw()
from  tkinter import *
from tkinter import filedialog

root = Tk()

root.filename =  filedialog.askopenfilename(initialdir = "/", title = "Select file")
print (root.filename)

root.mainloop()