我在工作中开发了一个代码,希望对用户更加友好,以便与我的团队共享。此代码要求知道文件的特定位置,并且代码要在同一文件夹中运行。长话短说,我想添加一个选项来打开对话框,以便他们可以从任何目录中选择文件。我尝试了下面的代码,因为我想要这样,在选择文件并返回其位置后,Tkinter顶部窗口会自动关闭,而无需使用按钮,因此我的团队可以继续进行下一步。
问题在于,它会打开三个Tkinter窗口,并且在选择文件后它们都保持打开状态。
from tkinter import *
from tkinter import filedialog
top = Toplevel()
root = Tk()
root.fileName = filedialog.askopenfilename(filetypes = (("data migration","*.xlsx"),("data migration","*.csv")))
top.destroy()
top.update()
除了上述问题之外,当我尝试关闭这些持久窗口时,它还会关闭Python。
到目前为止,我发现所有解决方案都添加了一个按钮,如果可能的话,我会尽量避免这样做。
答案 0 :(得分:0)
改为制作一个函数,并在最后调用函数top.destroy()
from tkinter import *
from tkinter import filedialog
root = Tk()
top = Toplevel()
def func():
fileName = filedialog.askopenfilename(filetypes = (("data migration","*.xlsx"),("data migration","*.csv")))
#do whatever you need to do with your filename
print (fileName)
top.destroy()
func()
root.mainloop()
答案 1 :(得分:0)
组合解决方案:
from tkinter import *
from tkinter import filedialog
root = Tk()
top = Toplevel()
def func():
fileName = filedialog.askopenfilename(filetypes = (("data migration","*.xlsx"),("data migration 2","*.csv")))
#do whatever you need to do with your filename
print (fileName)
top.destroy()
def quit():
root.destroy()
func()
quit()
root.mainloop()