python怎么用plumber库、panda库,把一个文件夹中的多个PDF批量写入一个excel,每个pdf的内容写入一个单元格
时间: 2024-04-09 08:29:15 浏览: 131
要使用pdfplumber库和pandas库将一个文件夹中的多个PDF文件批量写入一个Excel文件,并且每个PDF的内容写入一个单元格,可以按照以下步骤进行操作:
```python
import os
import pdfplumber
import pandas as pd
def write_pdf_to_excel(pdf_path, excel_sheet):
with pdfplumber.open(pdf_path) as pdf:
text = ""
for page in pdf.pages:
text += page.extract_text()
excel_sheet.append([text])
# 假设你有一个包含多个PDF文件的文件夹路径
pdf_folder = "pdf_folder"
# 创建一个空的DataFrame对象
df = pd.DataFrame()
# 遍历文件夹中的PDF文件
for filename in os.listdir(pdf_folder):
if filename.endswith(".pdf"):
pdf_path = os.path.join(pdf_folder, filename)
with pdfplumber.open(pdf_path) as pdf:
text = ""
for page in pdf.pages:
text += page.extract_text()
df = df.append(pd.DataFrame([text]), ignore_index=True)
# 将DataFrame写入Excel文件
excel_file = "output.xlsx"
df.to_excel(excel_file, index=False, header=False)
```
在上述代码中,我们首先定义了一个`write_pdf_to_excel`函数,它接收一个PDF文件路径和一个Excel工作表对象作为参数。在函数内部,我们使用pdfplumber打开PDF文件,并遍历每个页面,将页面的文本内容累加到`text`变量中。然后,我们使用`excel_sheet.append([text])`将每个PDF的内容作为一个整体写入Excel工作表中的一个单元格。
接下来,我们假设你有一个包含多个PDF文件的文件夹路径`pdf_folder`。我们使用`os.listdir()`函数遍历文件夹中的所有文件,然后判断文件是否以".pdf"结尾,以确保只处理PDF文件。我们使用`os.path.join()`函数构建每个PDF文件的完整路径。
在循环中,我们调用`write_pdf_to_excel`函数,并将Excel工作表对象传递给它。同时,我们使用pandas的DataFrame对象`df`来存储每个PDF的内容。
最后,我们将DataFrame写入Excel文件,使用`df.to_excel()`方法将DataFrame数据写入到指定的Excel文件中。
请确保在运行代码之前安装了pdfplumber和pandas库,可以使用`pip install pdfplumber pandas`命令进行安装。同时,确保指定的文件夹中只包含需要处理的PDF文件。
阅读全文