【问题标题】:Efficient file browser using python使用python的高效文件浏览器
【发布时间】:2020-03-16 20:29:18
【问题描述】:

我想构建一个高效的文件浏览器,我的意图是只打开 4 种特定的文件类型,它正在发生,但问题是我希望在文件对话框中,只有那些文件类型应该出现,所以该选择变得更容易,但现在发生的是所有其他文件夹也出现了,但我想要的是在文件对话框中只有那些文件应该出现我想要打开的文件类型。这个怎么办??

import tkinter as tk
import os
from tkinter import filedialog
window=tk.Tk()
apps=[]

def file_browser():

    for widget in frame.winfo_children():
        widget.destroy()

    filename=filedialog.askopenfilename(initialdir="/",title="Select File",
                                        filetypes=(("presentations","*.pptx"),("Word Files","*.docx"),("All PDFs","*.pdf"),
                                                   ("All text files","*.txt")))
    apps.append(filename)
    for app in apps:
        label=tk.Label(frame,text=app,bg="yellow",fg="red")
        label.pack()

def run_apps():
    for app in apps:
        os.startfile(app)

window.title("Document Finder")
canvas=tk.Canvas(window,height=500,width=500,bg="#263D42")
canvas.pack()
frame=tk.Frame(window,bg="white")
frame.place(relwidth=0.8,relheight=0.8,relx=0.1,rely=0.1)

btn1=tk.Button(window,text="Open File", padx=10, pady=5,
               fg="white",bg="#263D42",command = file_browser)
btn1.pack()

btn2=tk.Button(window,text="Run File", padx=10, pady=5,
               fg="white",bg="#263D42",command=run_apps)
btn2.pack()

window.mainloop()

【问题讨论】:

    标签: python user-interface tkinter operating-system filebrowse


    【解决方案1】:

    当您打开文件对话框时,只有那些指定的文件类型会出现。 Windows 文件资源管理器会显示所有文件夹,但一旦打开文件夹,只会显示指定的文件类型。

    正在这样做是正确的,当您打开所有出现的文件夹时,只显示指定的那些文件类型。

    【讨论】:

    • 但是有什么办法可以取消或取消windows explorer的效果,其他所有出现的文件夹都不出现,只出现需要类型的文件??
    • 但是如果您的用户想要的文件在文件夹中怎么办?
    • True.. 但是这里也出现了其他文件夹,其中不包含任何内容,因为它包含其他文件类型,所以我想从文件对话框中删除这些文件夹。
    • 可能程序甚至应该能够查看文件夹内的内容,然后只显示那些带有所需文件类型的文件夹..我不知道是否可能..所以我在寻求帮助。
    • 这在带有 Tkinter 的文件资源管理器中是不可能的。 Python IDLE(使用 Tkinter)也有这个“问题”。我认为这没有必要,我从未见过打开文件对话框(在任何程序中)这样做。如果这确实是您的应用程序中的一个问题,您可能需要在没有文件资源管理器的情况下创建自己的打开文件对话框(这可能很难),除非有办法使用文件资源管理器和 Tkinter 我不知道。
    猜你喜欢
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    相关资源
    最近更新 更多