我想遍历目录中的所有PDF,使用PDFminer从每个PDF中提取文本,然后将输出写入单个CSV文件。我能够通过将文本传递给此处定义的函数来单独从每个PDF中提取文本。我还能够获得给定目录中所有PDF文件名的列表。但是,当我尝试将两者放在一起并将结果写入单个CSV时,我得到了一个带有标头但没有数据的CSV。
这是我的代码:
import os
pdf_files = [name for name in os.listdir("C:\\My\\Directory\\Path") if name.endswith(".pdf")] #get all files in directory
pdf_files_path = ["C:\\My\\Directory\\Path\\" + pdf_files[i] for i in range(len(pdf_files))] #add directory path
import pandas as pd
df = pd.DataFrame(columns=['FileName','Text'])
for i in range(len(pdf_files)):
scraped_text = convert_pdf_to_txt(pdf_files_path[i])
df.append({ 'FileName': pdf_files[i], 'Text': scraped_text[i]},ignore_index=True)
df.to_csv('output.csv')
变量具有以下值:
pdf_files: ['12280_2007_Article_9000.pdf', '12280_2007_Article_9001.pdf', '12280_2007_Article_9002.pdf', '12280_2007_Article_9003.pdf', '12280_2007_Article_9004.pdf', '12280_2007_Article_9005.pdf', '12280_2007_Article_9006.pdf', '12280_2007_Article_9007.pdf', '12280_2007_Article_9008.pdf', '12280_2007_Article_9009.pdf']
pdf_files_path: ['C:\\My\\Directory Path\\12280_2007_Article_9000.pdf', etc...]
Empty DataFrame
Columns: [FileName, Text]
Index: []
更新:根据@AMC的建议,我在循环中检查了scraped_text的内容。对于“文本”列,似乎我正在循环遍历第一个PDF文件中的字符,而不是直接循环遍历每个文件。此外,循环的内容不会写入数据帧或 CSV。
12280_2007_Article_9000.pdf E
12280_2007_Article_9001.pdf a
12280_2007_Article_9002.pdf s
12280_2007_Article_9003.pdf t
12280_2007_Article_9004.pdf
12280_2007_Article_9005.pdf A
12280_2007_Article_9006.pdf s
12280_2007_Article_9007.pdf i
12280_2007_Article_9008.pdf a
12280_2007_Article_9009.pdf n
慕尼黑的夜晚无繁华
相关分类