我有一个简单的脚本,解析一个文件,并将其内容加载到数据库中。我不需要UI,但现在我提示用户使用raw_input
解析文件,这是最不友好的,尤其是因为用户不能复制/粘贴路径。我想要一种快速而简单的方式来向用户显示文件选择对话框,他们可以选择文件,然后将其加载到数据库中。(在我的用例中,如果他们碰巧选择了错误的文件,它将无法解析,即使将其加载到数据库中也不会成为问题。)
import tkFileDialog
file_path_string = tkFileDialog.askopenfilename()
这段代码接近我想要的效果,但是它留下了一个恼人的空框架(它不能被关闭,可能是因为我还没有注册一个关闭事件处理程序)。
我不一定要使用tkInter,但是因为它在Python标准库中,所以它是最快、最简单的解决方案的一个很好的候选者。
在没有任何其他UI的脚本中提示输入文件或文件名,有什么快速而简单的方法?
发布于 2013-01-02 16:58:32
如果你不想有任何其他依赖,Tkinter是最简单的方法。要只显示没有任何其他图形用户界面元素的对话框,您必须使用withdraw
方法隐藏根窗口:
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
Python 2变体:
import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
file_path = tkFileDialog.askopenfilename()
发布于 2012-02-17 05:59:24
发布于 2012-02-17 06:07:26
尝试使用wxPython
import wx
def get_path(wildcard):
app = wx.App(None)
style = wx.FD_OPEN | wx.FD_FILE_MUST_EXIST
dialog = wx.FileDialog(None, 'Open', wildcard=wildcard, style=style)
if dialog.ShowModal() == wx.ID_OK:
path = dialog.GetPath()
else:
path = None
dialog.Destroy()
return path
print get_path('*.txt')
https://stackoverflow.com/questions/9319317
复制相似问题