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/开发。