• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
不哭不闹,不吵不笑
博客园    首页    新随笔    联系   管理    订阅  订阅

在 python 中,快速简单的文件对话框? 转自::在 python 中,快速简单的文件对话框?

我的脚本解析一个文件并将它的内容加载到数据库中。 我不需要 UI,但现在我会提示用户使用raw_input 这是最不友好的这是最不友好的,特别是因为用户无法复制路径。 我希望快速而简单地将文件选择对话框呈现给用户,它们可以选择文件,然后加载到数据库中。 ( 在我的用例中,如果他们碰巧选择了错误的文件,那么它将失败解析,即使它被加载到数据库中) 也不会出现问题。


import tkFileDialog
file_path_string = tkFileDialog.askopenfilename()

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

我不需要使用,但是因为它位于 python 标准库中,它是最快和最容易解决的问题。

在没有其他任何UI的脚本中提示输入文件或者文件名的快捷方式是什么?

  • python
  •  
  • openfiledialog
时间: 17年05月13日 原作者: Buttons840 共8个回答
Tkinter是最简单的方式,如果你不想有任何其他依赖。 只显示对话框没有任何其他gui元素,你必须隐藏 root 窗口使用 withdraw 方法:

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
发布时间: 70年01月01日 原作者: Xenomorph
尝试使用 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')
发布时间: 70年01月01日 原作者: Xenomorph
 你可以使用 easygui:

import easygui

path = easygui.fileopenbox()

要安装 easygui,你可以使用 pip:

 
pip3 install easygui

 

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

posted @ 2017-09-11 11:39  不哭不闹,不吵不笑  阅读(282)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3