用python写一个批量提取PDF文档信息并保存为TXT格式的文件的窗口程序并显示内容文本框

时间: 2023-09-13 20:03:05 浏览: 22
以下是一个基于Python Tkinter库的窗口程序示例,用于批量提取PDF文档信息并保存为TXT格式的文件,并显示内容文本框。 ```python import tkinter as tk from tkinter import filedialog import PyPDF2 class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.master = master self.pack() self.create_widgets() def create_widgets(self): self.select_button = tk.Button(self, text="选择文件夹", command=self.select_folder) self.select_button.pack(side="top") self.file_list = tk.Listbox(self) self.file_list.pack(side="top") self.extract_button = tk.Button(self, text="提取信息", command=self.extract_info) self.extract_button.pack(side="top") self.quit_button = tk.Button(self, text="退出", command=self.master.destroy) self.quit_button.pack(side="bottom") self.text_area = tk.Text(self, height=20, width=80) self.text_area.pack(side="bottom") def select_folder(self): self.file_list.delete(0, tk.END) self.folder_path = filedialog.askdirectory() for filename in os.listdir(self.folder_path): if filename.endswith(".pdf"): self.file_list.insert(tk.END, filename) def extract_info(self): for filename in self.file_list.get(0, tk.END): pdf_file = open(os.path.join(self.folder_path, filename), 'rb') pdf_reader = PyPDF2.PdfFileReader(pdf_file) with open(os.path.join(self.folder_path, filename[:-4] + '.txt'), 'w') as txt_file: for page_num in range(pdf_reader.numPages): page_obj = pdf_reader.getPage(page_num) txt_file.write(page_obj.extractText()) self.text_area.insert(tk.END, f"{filename} 提取完成\n") root = tk.Tk() app = Application(master=root) app.mainloop() ``` 程序界面包含一个选择文件夹的按钮、一个文件列表、一个提取信息的按钮、一个退出的按钮以及一个用于显示提取结果的文本框。 当用户点击选择文件夹按钮时,会打开文件对话框,用户可以选择需要批量处理的PDF文件所在的文件夹。然后程序会将文件夹中所有以.pdf结尾的文件名添加到文件列表中。 用户可以选择需要提取信息的PDF文件,然后点击提取信息的按钮,程序会逐个打开文件并提取文件中的文本信息,并将提取的文本保存为同名的.txt文件。提取过程完成后,程序会在文本框中显示每个文件的提取结果。 需要注意的是,PyPDF2库只支持提取纯文本信息,对于含有图像或表格等非文本内容的PDF文件,提取的结果可能不完整或不准确。

最新推荐

Python批量提取PDF文件中文本的脚本

主要为大家详细介绍了Python批量提取PDF文件中文本的脚本,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

使用python批量读取word文档并整理关键信息到excel表格的实例

今天小编就为大家分享一篇使用python批量读取word文档并整理关键信息到excel表格的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Python实现抓取HTML网页并以PDF文件形式保存的方法

主要介绍了Python实现抓取HTML网页并以PDF文件形式保存的方法,结合实例形式分析了PyPDF2模块的安装及Python抓取HTML页面并基于PyPDF2模块生成pdf文件的相关操作技巧,需要的朋友可以参考下

python如何将两个txt文件内容合并

主要为大家详细介绍了python如何将两个txt文件内容合并,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

python批量读取文件名并写入txt文件中

主要为大家详细介绍了python批量读取文件名并写入txt文件中,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

市建设规划局gis基础地理信息系统可行性研究报告.doc

市建设规划局gis基础地理信息系统可行性研究报告.doc

"REGISTOR:SSD内部非结构化数据处理平台"

REGISTOR:SSD存储裴舒怡,杨静,杨青,罗德岛大学,深圳市大普微电子有限公司。公司本文介绍了一个用于在存储器内部进行规则表达的平台REGISTOR。Registor的主要思想是在存储大型数据集的存储中加速正则表达式(regex)搜索,消除I/O瓶颈问题。在闪存SSD内部设计并增强了一个用于regex搜索的特殊硬件引擎,该引擎在从NAND闪存到主机的数据传输期间动态处理数据为了使regex搜索的速度与现代SSD的内部总线速度相匹配,在Registor硬件中设计了一种深度流水线结构,该结构由文件语义提取器、匹配候选查找器、regex匹配单元(REMU)和结果组织器组成。此外,流水线的每个阶段使得可能使用最大等位性。为了使Registor易于被高级应用程序使用,我们在Linux中开发了一组API和库,允许Registor通过有效地将单独的数据块重组为文件来处理SSD中的文件Registor的工作原

要将Preference控件设置为不可用并变灰java完整代码

以下是将Preference控件设置为不可用并变灰的Java完整代码示例: ```java Preference preference = findPreference("preference_key"); // 获取Preference对象 preference.setEnabled(false); // 设置为不可用 preference.setSelectable(false); // 设置为不可选 preference.setSummary("已禁用"); // 设置摘要信息,提示用户该选项已被禁用 preference.setIcon(R.drawable.disabled_ico

基于改进蚁群算法的离散制造车间物料配送路径优化.pptx

基于改进蚁群算法的离散制造车间物料配送路径优化.pptx

海量3D模型的自适应传输

为了获得的目的图卢兹大学博士学位发布人:图卢兹国立理工学院(图卢兹INP)学科或专业:计算机与电信提交人和支持人:M. 托马斯·福吉奥尼2019年11月29日星期五标题:海量3D模型的自适应传输博士学校:图卢兹数学、计算机科学、电信(MITT)研究单位:图卢兹计算机科学研究所(IRIT)论文主任:M. 文森特·查维拉特M.阿克塞尔·卡里尔报告员:M. GWendal Simon,大西洋IMTSIDONIE CHRISTOPHE女士,国家地理研究所评审团成员:M. MAARTEN WIJNANTS,哈塞尔大学,校长M. AXEL CARLIER,图卢兹INP,成员M. GILLES GESQUIERE,里昂第二大学,成员Géraldine Morin女士,图卢兹INP,成员M. VINCENT CHARVILLAT,图卢兹INP,成员M. Wei Tsang Ooi,新加坡国立大学,研究员基于HTTP的动态自适应3D流媒体2019年11月29日星期五,图卢兹INP授予图卢兹大学博士学位,由ThomasForgione发表并答辩Gilles Gesquière�