JKAIHUB
  • 计划清单
  • 菜单导航
    • 设置菜单
    • 教程指引
  1. 首页
  2. 工具学习
  3. 使用PDFDeal批量处理PDF
使用PDFDeal批量处理PDF

使用PDFDeal批量处理PDF

  • 工具学习
  • 2024-08-13 上午11:19
  • 3 分钟阅读

前言

pdfdeal能更轻松简单地处理 PDF,提取可读文本,用 OCR 识别图像文本并清理格式,使其更适合构建知识库。使用Doc2X以达到最佳效果。

项目地址:https://menghuan1918.github.io/pdfdeal-docs/zh/

该项目集成了多种处理PDF方案,经博主测试还是Doc2x效果最佳,具体效果比对结果可以查看这里: https://noedgeai.feishu.cn/wiki/K1NGwjuuqiI9nukgapEcUAALnLh

下方给出实际使用中,如何批量处理某一文件夹的笔记示例:

环境配置

配置对应的库和虚拟环境:

conda create -n pdfdeal python=3.11
conda activate pdfdeal
pip install --upgrade pdfdeal

确定对应虚拟环境激活后,导入对应的Api_Key,Api_Key可以在Doc2x用户设置里获取

欢迎走我的邀请链接,双方可以各获得5天Pro时长:https://doc2x.noedgeai.com/?inviteCode=BQWRIY

然后导入环境变量:

export DOC2X_APIKEY = "Your API Key"

至此,环境配置完毕,下一步进行文件处理。

文件处理

开发者给出了较多的文件处理格式支持,这里我仅针对自己实际需求,示例将PDF转为Markdown文件:

from pdfdeal import Doc2X
from pdfdeal import get_files

Client = Doc2X()
file_list, rename_list = get_files(
    path="./input", mode="pdf", out="md_dollar"
)
success, failed, flag = Client.pdf2file(
    pdf_file=file_list,
    output_path="./output_name",
    output_names=rename_list,
    output_format="md_dollar",
)
print(success)
print(failed)
print(flag)

更多参数可以参考这里: https://menghuan1918.github.io/pdfdeal-docs/zh/guide/pdfdeal/

其中注意 out 和 output_format参数要保持一致

不过,使用该方式转化出来的文件有一个小缺点,他的文件夹会和源文件相同,但文件夹里的文件名命名似乎是随机生成的一串字符,这在做为类似FastGPT后置流程导入时非常不便溯源。

etc.
0191496d-27bd-7cca-b7e7-68c3db865c38_md_dollar.md

于是我让Claude帮我写了一段重命名脚本,完整脚本见下:

import os

def rename_md_files(root_path):
    for dirpath, dirnames, filenames in os.walk(root_path):
        for filename in filenames:
            if filename.endswith('.md'):
                old_file_path = os.path.join(dirpath, filename)
                parent_folder_name = os.path.basename(dirpath)
                new_file_name = f"{parent_folder_name}.md"
                new_file_path = os.path.join(dirpath, new_file_name)
                
                # 如果新文件名已存在,添加数字后缀
                counter = 1
                while os.path.exists(new_file_path):
                    new_file_name = f"{parent_folder_name}_{counter}.md"
                    new_file_path = os.path.join(dirpath, new_file_name)
                    counter += 1
                
                os.rename(old_file_path, new_file_path)
                print(f"重命名: {old_file_path} -> {new_file_path}")

# 使用示例
root_path = "output"  # 替换为你的根文件夹路径
rename_md_files(root_path)

记得修改要处理的文件路径即可,它会查找.md文件,然后将其命名为所在文件夹的名字。

全文完 :)

JK

暂无介绍....

上一篇
Meteor Pro 美化教程(一)
下一篇
黑魂重游,故情难再

取消回复

评论列表 (0条):

加载更多评论 Loading...

延伸阅读:

空洞骑士
所述浮生

空洞骑士

没有为苦难哭泣的声音

JK
2022-01-03

🔍 搜索

🏷️ 标签

Meteor Pro
Wordpress
今夜读诗
爱在三部曲
豆瓣Top250
魂类游戏
JKAIHUB © 2024. All Rights Reserved.