You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Tkinter实现输入文件夹路径后检索返回对应PDF文件列表

基于Tkinter的PDF文件检索GUI实现

需求说明

  • 通过Entry组件输入目标文件夹路径
  • 点击按钮后自动扫描文件夹,返回所有PDF文件列表
  • 直接复用已有的PDF检索逻辑代码

完整可运行代码

import tkinter as tk
from tkinter import ttk, messagebox
from os import listdir
from os.path import isfile, join

def scan_pdf_files():
    # 获取输入框中的路径
    target_path = path_entry.get().strip()
    if not target_path:
        messagebox.showwarning("输入为空", "请先填写文件夹路径")
        return
    try:
        # 完全复用原有检索逻辑
        pdf_list = [f for f in listdir(target_path) if isfile(join(target_path, f)) and '.pdf' in f]
        # 清空历史结果后输出新结果
        result_box.delete(1.0, tk.END)
        result_box.insert(tk.END, "PDF 文件列表:\n\n")
        for pdf in pdf_list:
            result_box.insert(tk.END, f"{pdf}\n")
    except FileNotFoundError:
        messagebox.showerror("路径错误", "你输入的文件夹路径不存在,请检查后重试")
    except PermissionError:
        messagebox.showerror("权限不足", "没有权限访问该文件夹,请调整路径或权限设置")

# 初始化主窗口
root = tk.Tk()
root.title("PDF文件检索工具")
root.geometry("600x450")

# 路径输入模块
input_frame = ttk.Frame(root, padding=15)
input_frame.pack(fill=tk.X)
ttk.Label(input_frame, text="文件夹路径:").pack(side=tk.LEFT, padx=5)
path_entry = ttk.Entry(input_frame, width=50)
path_entry.pack(side=tk.LEFT, padx=5, fill=tk.X, expand=True)
scan_btn = ttk.Button(input_frame, text="检索PDF", command=scan_pdf_files)
scan_btn.pack(side=tk.LEFT, padx=5)

# 结果展示模块
result_frame = ttk.Frame(root, padding=15)
result_frame.pack(fill=tk.BOTH, expand=True)
ttk.Label(result_frame, text="检索结果:").pack(anchor=tk.W, padx=5)
result_box = tk.Text(result_frame, wrap=tk.WORD, font=("微软雅黑", 10))
result_box.pack(fill=tk.BOTH, expand=True, padx=5, pady=5)

root.mainloop()

功能说明

  • 核心检索逻辑和提供的原有代码完全一致,仅将控制台的输入输出替换为Tkinter组件交互
  • 新增了常用异常处理,避免路径错误、权限不足等情况导致程序崩溃
  • 直接运行代码,输入文件夹路径后点击「检索PDF」按钮即可看到对应文件夹下的所有PDF文件列表

内容的提问来源于stack exchange,提问作者Thanh Luong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:45:03