Choosing a file in Python with simple Dialog [closed]

0 votes
asked Aug 26, 2010 by mustafa-zengin

I would like to get file path as input in my Python console application.

Currently I can only ask for full path as an input in the console.

Is there a way to trigger a simple user interface where users can select file instead of typing the full path?

5 Answers

0 votes
answered Aug 26, 2010 by gary-kerr

Use the tkFileDialog module which is part of the standard installation.

import tkFileDialog

print tkFileDialog.askopenfilename()
0 votes
answered Aug 26, 2010 by etaoin

How about using Tkinter?

from Tkinter import Tk
from tkFileDialog import askopenfilename

Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file


0 votes
answered Aug 26, 2010 by jfs

With EasyGui (documentation generated by pydoc and epydoc for version 0.96):

import easygui
print easygui.fileopenbox()

To install:

pip install


import easygui
0 votes
answered Aug 26, 2010 by stefano-palazzo

Python 3.x version of Etaoin's answer for completeness:

from tkinter.filedialog import askopenfilename
filename = askopenfilename()
0 votes
answered Jan 22, 2013 by kylejmcintyre

Another option to consider is Zenity:

I had a situation where I was developing a Python server application (no GUI component) and hence didn't want to introduce a dependency on any python GUI toolkits, but I wanted some of my debug scripts to be parameterized by input files and wanted to visually prompt the user for a file if they didn't specify one on the command line. Zenity was a perfect fit. To achieve this, invoke "zenity --file-selection" using the subprocess module and capture the stdout. Of course this solution isn't Python-specific.

Zenity supports multiple platforms and happened to already be installed on our dev servers so it facilitated our debugging/development without introducing an unwanted dependency.

Welcome to Q&A, where you can ask questions and receive answers from other members of the community.
Website Online Counter