如何将文件夹中多份PDF内容分别存入DataFrame单行单元格
解决方案
你的核心问题是原代码把所有PDF内容合并成单一文本后再分割,无法对应单个文件,且pd.read_table的用法不符合需求。直接在遍历PDF时收集每个文件的文件名和完整内容,再生成DataFrame就能解决问题。
修改后的代码:
from pathlib import Path import fitz import pandas as pd # 指定PDF文件夹路径 fold = "C:/Users/talen/OneDrive/Application Development/data/ForParse/" # 获取所有PDF文件的路径对象 pdf_files = list(Path(fold).glob("*.pdf")) # 用于存储每个PDF的文件名和完整文本 pdf_data = [] for file in pdf_files: # 获取文件名 filename = file.name # 读取PDF完整内容 full_text = "" with fitz.open(file) as doc: for page in doc: # 拼接每页文本,保留原格式换行 full_text += page.getText() # 将当前文件的信息加入列表 pdf_data.append({"文件名": filename, "完整内容": full_text}) # 直接生成DataFrame df = pd.DataFrame(pdf_data) print(df) # 可选:保存到Excel或CSV # df.to_excel("pdf_content.xlsx", index=False)
关键修改说明
- 不再将所有PDF内容合并成单个文本文件,而是逐个处理每个PDF,单独存储每个文件的文件名和完整文本。
- 用列表收集每个文件的字典数据,最后直接生成DataFrame,确保每个PDF对应DataFrame的一行,其中"完整内容"列的单元格存储该PDF的全部文本。
- 避免了使用
pd.read_table带来的分割问题,无需再处理文本文件的读取逻辑,流程更直接高效。
内容的提问来源于stack exchange,提问作者Aeva
相关产品推荐
相关产品推荐

