Python中用简单的对话框select一个文件

我想在Python控制台应用程序中获取文件path作为input。

目前我只能要求在控制台中input完整path。

有没有办法触发一个简单的用户界面,用户可以select文件,而不是input完整的path?

如何使用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 print(filename) 

完成!

Etaoin完整答案的Python 3.x版本:

 from tkinter.filedialog import askopenfilename filename = askopenfilename() 

使用EasyGui (由pydoc和epydoc生成0.96版本的文档):

 import easygui print easygui.fileopenbox() 

安装:

 pip install http://easygui.sourceforge.net/download/version0.96/easygui_v0.96.zip 

演示:

 import easygui easygui.egdemo() 

使用属于标准安装的tkFileDialog模块。

 import tkFileDialog print tkFileDialog.askopenfilename() 

另一个select是Zenity: http ://freecode.com/projects/zenity。

我有一种情况,我正在开发一个Python服务器应用程序(没有GUI组件),因此不想引入对任何python GUI工具包的依赖,但是我希望我的一些debugging脚本能够被input文件参数化,并且希望如果用户没有在命令行中指定一个文件,则直观地提示用户input文件。 Zenity是一个完美的契合。 为此,使用subprocess模块调用“zenity –file-selection”并捕获stdout。 当然,这个解决scheme不是特定于Python的。

Zenity支持多种平台,恰巧已经安装在我们的开发服务器上,所以它在不引入不必要的依赖的情况下促进了我们的debugging/开发。