首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中快速简单的文件对话框?

在Python中快速简单的文件对话框?
EN

Stack Overflow用户
提问于 2012-02-17 05:24:41
回答 5查看 302.5K关注 0票数 122

我有一个简单的脚本,解析一个文件,并将其内容加载到数据库中。我不需要UI,但现在我提示用户使用raw_input解析文件,这是最不友好的,尤其是因为用户不能复制/粘贴路径。我想要一种快速而简单的方式来向用户显示文件选择对话框,他们可以选择文件,然后将其加载到数据库中。(在我的用例中,如果他们碰巧选择了错误的文件,它将无法解析,即使将其加载到数据库中也不会成为问题。)

代码语言:javascript
复制
import tkFileDialog
file_path_string = tkFileDialog.askopenfilename()

这段代码接近我想要的效果,但是它留下了一个恼人的空框架(它不能被关闭,可能是因为我还没有注册一个关闭事件处理程序)。

我不一定要使用tkInter,但是因为它在Python标准库中,所以它是最快、最简单的解决方案的一个很好的候选者。

在没有任何其他UI的脚本中提示输入文件或文件名,有什么快速而简单的方法?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-02 16:58:32

如果你不想有任何其他依赖,Tkinter是最简单的方法。要只显示没有任何其他图形用户界面元素的对话框,您必须使用withdraw方法隐藏根窗口:

代码语言:javascript
复制
import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()

file_path = filedialog.askopenfilename()

Python 2变体:

代码语言:javascript
复制
import Tkinter, tkFileDialog

root = Tkinter.Tk()
root.withdraw()

file_path = tkFileDialog.askopenfilename()
票数 247
EN

Stack Overflow用户

发布于 2012-02-17 05:59:24

您可以使用easygui

代码语言:javascript
复制
import easygui

path = easygui.fileopenbox()

要安装easygui,可以使用pip

代码语言:javascript
复制
pip3 install easygui

它是一个使用tkinter的纯Python模块(easygui.py)。

票数 31
EN

Stack Overflow用户

发布于 2012-02-17 06:07:26

尝试使用wxPython

代码语言:javascript
复制
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')
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9319317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档