tkinter: get filename of askopenfilename

rom rompubil at gmail.com
Thu Jun 25 01:44:25 EDT 2009


Ok. I think I got it. I have to do it in this way:
###########################
import Tkinter
import tkFileDialog


filename=''

root = Tkinter.Tk()

Tkinter.Button(root, text='Notch genes...', command=lambda:
open_file_dialog()).pack()

def open_file_dialog():
    global filename
    filename = tkFileDialog.askopenfilename(filetypes=
[("allfiles","*")])
    print_filename()

def print_filename():
    print filename

root.mainloop()
###########################
Thanks again

On Jun 25, 1:46 pm, rom <rompu... at gmail.com> wrote:
> Thanks for your response. I have modified this minimal program as you
> suggested but still is not able to print the filename:
>
> ######################
> import Tkinter
> import tkFileDialog
>
> global filename
> filename=''
>
> root = Tkinter.Tk()
>
> Tkinter.Button(root, text='Notch genes...', command=lambda:
> open_file_dialog()).pack()
>
> def open_file_dialog():
>     filename = tkFileDialog.askopenfilename(filetypes=
> [("allfiles","*")])
>
> print filename
>
> root.mainloop()
> ######################
>
> Is this what you mean?
>
> On Jun 25, 1:28 pm, norseman <norse... at hughes.net> wrote:
>
> > OOPS - I left out the global statement
>
> > rom wrote:
> > > Hi there,
>
> > > I am writing an interface with Tkinter. My minimal program looks like
> > > this:
> > > #############
> > > import Tkinter
> > > import tkFileDialog
>
> > # define globals here
> > filename= ''     # will take care of the problem
>
> > > root = Tkinter.Tk()
>
> > > Tkinter.Button(root, text='Notch genes...', command=lambda:
> > > open_file_dialog()).pack()
>
> > > def open_file_dialog():
>
> >        global filename   # need this to assign to it
>
> > >     filename = tkFileDialog.askopenfilename(filetypes=[("all
> > > files","*")])
>
> > > # print filename
>
> > > root.mainloop()
> > > #############
>
> > > I would like to recover the filename variable outside the
> > > "open_file_dialog" function. For instance, to be able to print the
> > > selected file name (uncomment "# print filename" line).
>
> > > Is there a way to do that?
>
> > > Thanks in advance.
>
> > > R
>
>



More information about the Python-list mailing list