PyPDF для чтения каждого PDF в папке - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть код ниже, который работает. Но он читает только один файл за раз, который я должен вставить в код. Как я могу заставить этот код читать каждый PDF в каталоге? PDF по PDF.

import PyPDF2
import textract
import re

filename = 'file.pdf' 
pdfFileObj = open(filename,'rb')               
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)   
num_pages = pdfReader.numPages  

count = 0
extractedtext = ""

while count < num_pages:                       
    pageObj = pdfReader.getPage(count)
    count +=1
    wortlaut += pageObj.extractText()

print(extractedtext)    

keyword = re.findall(r'(\d{7})(\-)(\d{2})',extractedtext)
if keyword:
print(keyword)

1 Ответ

1 голос
/ 13 февраля 2020

Вы можете использовать glob, чтобы получить список файлов PDF в каталоге.
Вы также можете принять аргумент командной строки для каталога, в котором нужно работать.
Вызов эта программа с: python3 this_script.py directory_to_read

import PyPDF2
import glob 
import os 
import re
import sys

dir_to_read = sys.argv[1] # accept a command-line argument with the dir to read
pdf_files = glob.glob(os.path.join(dir_to_read,'*.pdf'))

count = 0
extractedtext = ""
for pdf_file in pdf_files:
    print(pdf_file)
    pdfFileObj = open(pdf_file,'rb')               
    pdfReader = PyPDF2.PdfFileReader(pdfFileObj)   
    num_pages = pdfReader.numPages  

    print(num_pages)

    while count < num_pages:                       
        pageObj = pdfReader.getPage(count)
        count +=1
        extractedtext += pageObj.extractText()

    print(extractedtext)    

    keyword = re.findall(r'(\d{7})(\-)(\d{2})',extractedtext)
    if keyword:
        print(keyword)
...