使用语言:python(不得不说代码写起来是方便了,可是跑起来效率十分感人。)
调用库:pdfFilePages对pdf文件进行处理,将pdf文件中的内容提取出来。然后使用正则表达式匹配文件中的汉字,输出存在该汉字的文件名和页码。
# -*- coding: utf-8 -*-
import pdfplumber
import re
import os
from pkg_resources import WorkingSet
def getFileName(filepath): #获取文件夹下面的所有文件
file_list = []
for root,dirs,files in os.walk(filepath):
for filespath in files:
file_list.append(os.path.join(root,filespath))
return file_list
def getContent(pdfFile,pdfReader,page):
# find = re.findall('前景(.*)', pdfFile.pages[page].extract_text())
page = pdfReader.pages[page] # 第page页的信息
context = page.extract_text()
pattern1 = re.compile(r'[\u4e00-\u9fa5]+')
context1 = pattern1.findall(context)
context2 = "".join(context1)
pattern2 = re.compile(u'人民币') #把人民币换成自己要匹配的字符串
context3 = pattern2.findall(context2)
if context3 != []:
print(pdfFile,page)
def getResult(fileList):
for fileName in fileList:
pdfFile = open(fileName, 'rb') # 读取pdf文件
with pdfplumber.open(pdfFile) as pdfReader:
for page in range(len(pdfReader.pages)):
getContent(pdfFile,pdfReader,page)
if __name__ == '__main__':
fileFolderName = "C:\\Users\\klsxs\\Desktop\\pdf测试文件" #把这个地方改成自己的文件夹的名字
fileList = getFileName(fileFolderName)
getResult(fileList)
使用库PyPDF2,过程是一样的,只不过识别pdf文件的准确率不太行。
# -*- coding: utf-8 -*-
import pdfplumber
import PyPDF2
import re
import os
from pkg_resources import WorkingSet
def getFileName(filepath): #获取文件夹下面的所有文件
file_list = []
for root,dirs,files in os.walk(filepath):
for filespath in files:
file_list.append(os.path.join(root,filespath))
return file_list
def getContent(pdfFile,pdfReader,page):
# find = re.findall('前景(.*)', pdfFile.pages[page].extract_text())
page = pdfReader.pages[page] # 第page页的信息
context = page.extract_text()
pattern1 = re.compile(r'[\u4e00-\u9fa5]+')
context1 = pattern1.findall(context)
context2 = "".join(context1)
pattern2 = re.compile(u'人民币') #把人民币换成自己要匹配的字符串
context3 = pattern2.findall(context2)
if context3 != []:
print(pdfFile,page)
def getResult(fileList):
for fileName in fileList:
pdfFile = open(fileName, 'rb') # 读取pdf文件
pdfReader = PyPDF2.PdfFileReader(pdfFile)
pdfFilePages = pdfReader.numPages #文件的页数
with pdfplumber.open(pdfFile) as pdfReader:
for page in range(pdfFilePages):
getContent(pdfFile,pdfReader,page)
if __name__ == '__main__':
fileFolderName = "C:\\Users\\klsxs\\Desktop\\pdf测试文件" #把这个地方改成自己的文件夹的名字
fileList = getFileName(fileFolderName)
getResult(fileList)
最终输出的结果如下所示:
?输出出现“人民币”一词的文件名和页码。
|