1.安装pymupdf
在终端执行命令
pip install pymupdf
安装时间较长,等待一段时间
2.安装 pymysql
pip install pymysql
3.识别单个pdf
(1)定义个方法:
import fitz
def parsePDF(filePath):
with fitz.open(filePath) as doc:
text = ""
for page in doc.pages():
text += page.get_text()
if text:
return text
(2)在下边调用
parsePDF("zhangsan.pdf")
注:这个pdf放在py文件的同级目录下
4.识别文件夹中所有的pdf
import os
##遍历文件夹zkjn中的所有pdf
def __getattr__(folder_path):
##循环读取文件夹中的文件
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(".pdf"):
filePath = os.path.join(root, file)
##这里我对文件路径进行了处理获取了文件名称 根据自己的业务来就行
pdfName = filePath[filePath.index("zkjn") + 5:]
print(pdfName)
##调用前边写的单个读取pdf的方法
text = parsePDF(filePath)
##这一段是根据自己的业务对读取的内容进行处理
result = text[text.index("罗庄祥园") + 4:] #截取“罗庄祥园”之后的字符串
houseNo = result[:result.index("下载")] #截取“下载”这个字符串之前的数据
print(houseNo)
__getattr__("zkjn") ##在这里调用上面的方法 参数为文件夹名称
5.连接数据库存入库中
import pymysql
##这里写你自己的数据库配置
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', database='luogezhuang', charset='utf8')
cur = db.cursor() # 获取会话指针
##写sql
sql = 'INSERT INTO h_fapiao_pdf ( houseno, pdf_name) VALUES( %s, %s)'
cur.execute(sql, (houseNo, pdfName)) # 执行SQL语句
db.commit() # 固定写法,作用为提交修改
cur.close() # 关闭会话
db.close() # 关闭数据库连接
6.完事,完整代码如下:
import fitz
import os
import pymysql
db = pymysql.connect(host='localhost', port=3306, user='root', password='123456', database='luogezhuang', charset='utf8')
def parsePDF(filePath):
with fitz.open(filePath) as doc:
text = ""
for page in doc.pages():
text += page.get_text()
if text:
return text
##遍历文件夹zkjn中的所有pdf
def __getattr__(folder_path):
cur = db.cursor() # 获取会话指针
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(".pdf"):
filePath = os.path.join(root, file)
pdfName = filePath[filePath.index("zkjn") + 5:]
print(pdfName)
text = parsePDF(filePath)
result = text[text.index("罗阁庄泰祥园") + 6:] #截取罗各庄泰祥园之后的数据
houseNo = result[:result.index("下载")] #截取下载之前的数据
print(houseNo)
sql = 'INSERT INTO h_fapiao_pdf ( houseno, pdf_name) VALUES( %s, %s)'
cur.execute(sql, (houseNo, pdfName)) # 执行SQL语句
db.commit() # 固定写法,作用为提交修改
cur.close() # 关闭会话
db.close() # 关闭数据库连接
__getattr__("zkjn")