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

2024-04-24 06:21:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

import tkFileDialog
file_path_string = tkFileDialog.askopenfilename()

这段代码与我想要的很接近,但是它留下了一个烦人的空框架(它无法关闭,可能是因为我没有注册关闭事件处理程序)。

我不必使用tkInter,但由于它在python标准库中,所以它是最快和最简单解决方案的一个很好的候选。

在没有其他用户界面的情况下,在脚本中提示输入文件或文件名的快捷方法是什么?


Tags: 文件用户路径脚本数据库ui内容input
3条回答

尝试使用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')

如果不想有任何其他依赖项,Tkinter是最简单的方法。 要只显示对话框而不显示任何其他GUI元素,必须使用^{}方法隐藏根窗口:

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()

您可以使用easygui

import easygui

path = easygui.fileopenbox()

要安装^{},可以使用pip

pip3 install easygui

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

相关问题 更多 >