Question

I was wondering if there is something similar to Java's JFileChooser for Python?

JFileChooser is a graphical front end to choose a file.

Preferably something that is already with Python. Maybe with Tkinter.

Was it helpful?

Solution

For something that doesn't require wxPython and sticks with the standard Python libs, you can use the tkFileDialog.askopenfilename() method:

#!/usr/bin/python

from Tkinter import *
from tkFileDialog import askopenfilename

root = Tk()
root.withdraw()
print askopenfilename()

OTHER TIPS

wxPython (www.wxpython.org) provides the wx.FileDialog class which will give you a native file selection dialog on any of the supported platforms (Mac, Linux or Windows).

Easiest way I ever found to do this (using PyGTK and Kiwi):

from kiwi.ui.dialogs import open as open_dialog

chosen_path = open_dialog('Select a file', folder='/start/folder')

if chosen_path is not None:
    # do something ...

That would depend on your windowing toolkit. wxWidgets provides the wxFileDialog.

Maybe you would like to take a look at Jython.

For python 3 what you're looking for is tkinter.filedialog, and all that comes with it. Here's a short program that opens and then prints a TXT file of the user's choosing via askopenfilename:

from tkinter import *
from tkinter.filedialog import askopenfilename

root = Tk()
root.withdraw()
root.update()
pathString = askopenfilename(filetypes=[("Text files","*.txt")])
if pathString != "":
    openFile = open(pathString, 'r')
    fileString = openFile.read()
    print(fileString)
root.destroy()

Output is whatever is in the selected file.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top