tkFileDialog different between Linux and Windows

Russell E. Owen no at spam.invalid
Wed Feb 25 01:29:49 CET 2004

In article <faf44c99.0402240955.4613fd6a at>,
 timothy.williams at (Tim Williams) wrote:

>I'm using Python 2.3.2 and tkFileDialog in a program I have. I'm
>trying to use this on Linux (RH 8.0) and Windows 2000. When I first
>upgraded from v2.2 to v2.3. I noticed that
>tkFileDialog.askopenfilename() returns a tuple on Cancel instead of 
>''. I found that the Windows version still returns a string (''). Now
>I'm finding out that tkFileDialog.Directory().show() does this too.
>How can I check tkFileDialog to do the "right" thing?  All I want is
>the string that contains the path, but I want this to work on both
>Linux and Windows.

Is this the sort of thing you want?

dirobj = tkFileDialog.askdirectory()
if not dirobj:
  # user Cancelled; works whether the return is '' or ()

# dirobj may be a string or a Tk_Obj
dirname = unicode(dirobj)
The same code should work for askopenfilename.

More information about the Python-list mailing list