当前位置:首页>python>python自动化系列:批量自动转换pdf文件为txt文件

python自动化系列:批量自动转换pdf文件为txt文件

  • 2026-08-27 15:05:51
python自动化系列:批量自动转换pdf文件为txt文件
作品介绍

作品名称:批量自动转换pdf文件为txt文件

开发环境:PyCharm 2023.3.4 + python3.7

用到的库:os、PyPDF2

作品简介:该实例是一个自动化工具,可以处理包含多个PDF文件的目录,将每个PDF文件的内容转换为TXT格式,并保存到指定的输出目录。

适用场景:当需要编辑PDF文件的时候。

实现过程

一、代码设计

以下是代码的详细说明:

  1. 导入模块:

    • os:用于文件和目录操作。

    • PyPDF2:用于读取PDF文件。

  2. 设置输出目录:

    • output_dir:定义TXT文件的输出目录。

    • 使用os.makedirs确保输出目录存在。

  3. 定义conversion函数:

    • 参数file_dir:包含PDF文件的目录路径。

    • 检查目录是否存在,然后获取所有PDF文件列表。

    • 对每个PDF文件调用pdf2txt函数进行转换。

  4. 定义pdf2txt函数:

    • 参数pdf_path:单个PDF文件的路径。

    • 使用PyPDF2.PdfReader读取PDF文件。

    • 初始化空字符串text_content以存储提取的文本。

    • 遍历PDF的每一页,使用extract_text方法提取文本,并将其累加到text_content。

    • 将累加的文本内容写入到一个新的TXT文件中,文件名基于原PDF文件名。

  5. 定义get_name函数:

    • 参数file_path:文件的路径。

    • 使用os.path.basename获取文件名(带扩展名)。

    • 使用os.path.splitext分离文件名和扩展名,返回文件名(不含扩展名)。

  6. 执行转换:

    • 调用conversion函数,并传入包含PDF文件的目录路径。

  7. 异常处理:

    • 在pdf2txt函数中,使用try-except结构捕获并打印在读取PDF或写入TXT文件时发生的异常。

  8. 输出信息:

    • 在转换过程中,打印转换成功或错误的信息。

"""批量自动转换pdf文件为txt文件"""import osfrom PyPDF2 import PdfReader# 确保输出目录存在output_dir = './files/txt'if not os.path.exists(output_dir):    os.makedirs(output_dir)# 把文件下的所有PDF转换为TXTdef conversion(file_dir):if not os.path.exists(file_dir):print('文件路径不正确,请检查')else:        file_list = [f for f in os.listdir(file_dir) if f.endswith('.pdf')]  # 确保是PDF文件for file in file_list:            pdf_path = os.path.join(file_dir, file)            try:                pdf2txt(pdf_path)            except Exception as e:print(f"转换错误: {e}")# PDF转为TXTdef pdf2txt(pdf_path):    # 使用PyPDF2读取PDF文件    reader = PdfReader(pdf_path)    # 初始化一个空字符串用于存储文本    text_content = ""    # 遍历PDF中的每一页for page_num in range(len(reader.pages)):        # 获取每一页的内容        page = reader.pages[page_num]        # 将文本添加到字符串        text = page.extract_text()if text:  # 确保提取的文本不为空            text_content += text + "\n"    # 保存TXT文件    name = get_name(pdf_path)    # TXT文件输出路径    txt_file = os.path.join(output_dir, f"{name}.txt")    try:        with open(txt_file, 'w', encoding='utf-8') as f:            f.write(text_content)print(f"文件已保存: {txt_file}")    except Exception as e:print(f"保存文件时出错: {e}")# 获取文件名def get_name(file_path):    # 使用os.path.basename()获取文件名    file_name_with_extension = os.path.basename(file_path)    # 使用os.path.splitext()分离文件名和后缀名    file_name, _ = os.path.splitext(file_name_with_extension)return file_nameconversion('./files/pdf')

二、结语

以上就是本次分享的全部内容,如果你有任何疑问或想要分享你的自动化办公经验,我们的评论区永远为你敞开。你的每一个点赞和转发,都是对我们最大的支持和鼓励!

想要深入学习并获取文中的完整代码吗?很简单,关注我们的公众号,并回复文章标题,即可立即获取。

再次感谢你的阅读,期待在下一次分享中与你相见!

精选阅读
python自动化系列:轻松合并文件夹内所有TXT文件
python自动化系列:比较两个txt的内容
python自动化系列:将文本(txt)文件转换为其他格式
python自动化系列:统计txt文件中单词的出现频次并倒序
python自动化系列:将多个工作簿数据分类汇总到一个工作簿
python自动化系列:一键替换文档关键词
python自动化系列:旋转PDF文件特定页面
python自动化系列:过滤文本(txt)的内容
python自动化系列:抓取财经精选新闻
python自动化系列:一键重命名文件,轻松跟踪修改历史
python自动化系列:一键删除PDF文档密码

python自动化系列:pdf页面转图片

python自动化系列:重新排列pdf页面的顺序

python自动化系列:裁剪pdf特定页面特定区域

python自动化系列:将Excel表格中的学生信息自动填充到一个word文档

python自动化系列:轻松合并PDF文件特定页面

python自动化系列:将Excel表格中的学生多条信息自动填充到一个Word文档

python自动化系列:如何轻松为PDF文件添加统一水印

最新文章

随机文章