【发布时间】:2023-01-17 15:09:58
【问题描述】:
我是 python 的新手,你能帮我更正这段代码吗?
我想补充两件事:
- 对多个 pdf 进行操作,而不仅仅是一个并将内容粘贴到 A2、A3 A4 等
- 如果可能,请在另一行 (B2,B3,B4) 中写入 pdf 文件的名称。
提前谢谢你,这是我正在使用的代码
import PyPDF2 import openpyxl pdfFileObj = open("file.pdf", 'rb') pdfReader = PyPDF2.PdfFileReader(pdfFileObj) pdfReader.numPages pageObj = pdfReader.getPage(0) mytext = pageObj.extractText() wb = openpyxl.load_workbook('excel.xlsx') sheet = wb.active sheet.title = 'MyPDF' sheet['A1'] = mytext wb.save('excel.xlsx') print('DONE!!')我已经按照建议修改了代码,循环似乎得到了所有页面!但也许我必须使用 "sheet[f'A{row}'].value = '\n'.join(output)" 因为它似乎打印了很多空格
import PyPDF2 import openpyxl import os import glob root_dir = "your directory" filenames = [] # root_dir needs a trailing slash (i.e. /root/dir/) for filename in glob.iglob(root_dir + '**/**', recursive=True): if filename.lower().endswith('.pdf'): filenames.append(os.path.join(directory, filename)) wb = openpyxl.load_workbook('excel.xlsx')#your file excel sheet = wb.active sheet.title = 'MyPDF' for row, filename in enumerate(filenames, start=1): with open(filename, 'rb') as f: pdfReader = PyPDF2.PdfFileReader(f) count=pdfReader.numPages pageObj = pdfReader.getPage(0) mytext = pageObj.extractText() for i in range(count): page = pdfReader.getPage(i) output = [] output = page.extractText() print(output) sheet[f'A{row}'].value = '\n'.join(output) sheet[f'B{row}'].value = filename wb.save('excel.xlsx') #your file excel print('DONE!!')
【问题讨论】: