34 KiB
34 KiB
In [ ]:
import os,sys,shutil
import openpyxl
import math
fi_xls = os.getcwd() + '/file/中国石油化工股份有限公司安庆炼化分公司员工在职人员名单.xlsx'
fi_path = os.getcwd() + '/file/210924'
old = []
dict1 = {}
wb = openpyxl.load_workbook(fi_xls)
sheet = wb.active
depart = []
for n in range(2,sheet.max_row+1):
m_name = sheet.cell(n,1).value.strip()
m_depart = sheet.cell(n,5).value
if m_depart not in depart:
depart.append(sheet.cell(n,5).value)
dict1[int(m_name.split('.')[0])] = [sheet.cell(n,2).value.strip(),sheet.cell(n,5).value.strip()]
# 创建部门办公室
m_path = os.getcwd()+'/file/210924/new'
for pn in depart:
if not os.path.exists(m_path + '/' + pn):
os.mkdir(m_path + '/' + pn)
fl=os.listdir(fi_path)
for fn in fl:
if os.path.isfile(fi_path + '/' + fn):
ofn = int(fn.split('.')[0])
old.append(ofn)
old.sort()
for n in old:
o_name = f'{fi_path}/{n}.pdf'
n_name = f'{fi_path}/new/{dict1[n][1]}/{str(n).rjust(5,"0")}-{dict1[n][0]}.pdf'
if not os.path.exists(n_name):
shutil.copyfile(o_name,n_name)
print(n_name)
#print(dict1)In [ ]:
import fitz
import os
def covert2pic(zoom):
if os.path.exists('.pdf'): # 临时文件,需为空
os.removedirs('.pdf')
os.mkdir('.pdf')
for pg in range(totaling):
page = doc[pg]
zoom = int(zoom) #值越大,分辨率越高,文件越清晰
rotate = int(0)
print(page)
trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).preRotate(rotate)
pm = page.getPixmap(matrix=trans, alpha=False)
lurl='.pdf/%s.jpg' % str(pg+1)
pm.writePNG(lurl)
doc.close()
def pic2pdf(obj):
doc = fitz.open()
for pg in range(totaling):
img = '.pdf/%s.jpg' % str(pg+1)
imgdoc = fitz.open(img) # 打开图片
pdfbytes = imgdoc.convertToPDF() # 使用图片创建单页的 PDF
os.remove(img)
imgpdf = fitz.open("pdf", pdfbytes)
doc.insertPDF(imgpdf) # 将当前页插入文档
if os.path.exists(obj): # 若文件存在先删除
os.remove(obj)
doc.save(obj) # 保存pdf文件
doc.close()
def pdfz(sor, obj, zoom):
covert2pic(zoom)
pic2pdf(obj)
sor = "5.pdf" # 需要压缩的PDF文件
obj = "new-" + sor
doc = fitz.open(sor)
totaling = doc.pageCount
zoom = 150 # 清晰度调节,缩放比率
pdfz(sor, obj, zoom)
os.removedirs('.pdf')
In [ ]:
from pdf2image import convert_from_path, convert_from_bytes
import os,sys
import tempfile
from pdf2image.exceptions import (
PDFInfoNotInstalledError,
PDFPageCountError,
PDFSyntaxError
)
#images = convert_from_path('1.pdf',dpi=200,fmt='jpg', output_folder='./sample_data')
with tempfile.TemporaryDirectory() as path:
images_from_path = convert_from_path('5.pdf', dpi=100,fmt='jpg', output_folder='./pic')
print(path)In [ ]:
import img2pdf
import os,sys
import glob
fl=glob.glob('./pic/*.jpg')
fl.sort()
a4inpt = (img2pdf.mm_to_pt(210),img2pdf.mm_to_pt(297))
layout_fun = img2pdf.get_layout_fun(a4inpt)
with open("name.pdf","wb") as f:
f.write(img2pdf.convert(fl,layout_fun=layout_fun))In [ ]:
import glob
import fitz # 导入本模块需安装pymupdf库
import os,sys
def pic2pdf_1(img_path, pdf_path, pdf_name):
doc = fitz.open()
fl=os.listdir(img_path)
fl.sort()
width, height = fitz.PaperSize("a4")
for img in fl:
fn = img_path+'/'+img
if os.path.isfile(fn):
imgdoc = fitz.open(img_path+'/'+img)
pdfbytes = imgdoc.convertToPDF()
imgpdf = fitz.open("pdf", pdfbytes,width = width, height = height)
doc.insertPDF(imgpdf)
doc.save(pdf_path +'/'+ pdf_name)
doc.close()
img_path = os.getcwd() +'/pic'
pdf_path = os.getcwd()
pic2pdf_1(img_path=img_path, pdf_path=pdf_path, pdf_name='1.pdf')In [ ]:
#将指定目录下图片文件进行文字识别
import os,sys
from aip import AipOcr
import glob
""" 你的 APPID AK SK """
APP_ID = '17553946'
API_KEY = 'IMC1ss3Tyo3vEAdVH6jgcdv2'
SECRET_KEY = 'Iua6KdhuDtz159rjzGeFGpqgjhnoU0zZ'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
def get_file_content(filePath):
with open(filePath, 'rb') as fp:
return fp.read()
options = {}
options["language_type"] = "CHN_ENG"
options["detect_direction"] = "true"
options["detect_language"] = "true"
options["probability"] = "true"
fi_path = os.getcwd()+'/pic'
fl = glob.glob(f'{fi_path}/*.jpg')
fl.sort()
for fl1 in fl:
file_name = fl1
image = get_file_content(file_name)
result= client.basicGeneral(image, options)
if 'words_result' in result:
print('\n'.join([w['words'] for w in result['words_result']]))
print('\n')
In [ ]:
import docx
import json
Doc = docx.Document(r"症状对症处方选穴.docx")
#print("檔案內含段落數:",len(Doc.paragraphs),"\n")
testList = []
text1 = []
dict1 = {}
for text in Doc.paragraphs:
testList.append(text)
i = 0
for pg in testList:
if len(pg.text) >0:
s = ''.join(pg.text.split())
if s[0:1] == '第':
i += 1
n = 0
dict1.setdefault(i,{})
dict1[i]['title'] = pg.text.split()[1]
dict1[i]['sub'] = {}
#dict1[i]['title'].setdefault(i,{})
elif s[0:1] == '(':
sub = s.split(')')[1]
dict2 = {}
dict1[i]['sub'].setdefault(sub,[])
else:
dict1[i]['sub'][sub].append(s)
filename = '症状对症处方选穴.json'
with open(filename,'w') as fl:
json.dump(dict1, fl,ensure_ascii=False)
print('ok') In [ ]:
import docx
import json
Doc = docx.Document(r"常见疾病辨病处方选穴.docx")
#print("檔案內含段落數:",len(Doc.paragraphs),"\n")
testList = []
text1 = []
dict1 = {}
for text in Doc.paragraphs:
testList.append(text)
i = 0
for pg in testList:
if len(pg.text) >0:
s = ''.join(pg.text.split())
if s[0:1] == '第':
i += 1
n = 0
dict1.setdefault(i,{})
dict1[i]['title'] = pg.text.split('节')[1]
dict1[i]['sub'] = {}
#dict1[i]['title'].setdefault(i,{})
elif s[0:1] == '(':
sub = s.split(')')[1]
dict2 = {}
dict1[i]['sub'].setdefault(sub,[])
else:
dict1[i]['sub'][sub].append(s)
filename = '常见疾病辨病处方选穴.json'
with open(filename,'w') as fl:
json.dump(dict1, fl,ensure_ascii=False)
print('ok') In [ ]:
import json
import re
filename = '症状对症处方选穴.json'
pattern = r'[\d\.]'
mo =r'[\u4e00-\u9fa5]+'
dict2 = {}
with open(filename,'r') as fl:
dict1 = json.load(fl)
for k,v in dict1.items():
m_title = v['title']
for k1,v1 in v['sub'].items():
sub_title = k1
s = ''
for mx in v1:
s = s + mx
list1 = re.split(pattern, s)
list2 = []
for ss in list1:
if ss != '':
list3 = re.findall(mo,ss)
list2.append(list3)
#print(m_title,sub_title,list2)
dict2.setdefault(m_title,{})
dict2[m_title][sub_title] = list2
filename = 'new_症状对症处方选穴.json'
with open(filename,'w') as fl:
json.dump(dict2, fl,ensure_ascii=False)
print('ok')
In [13]:
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
path = "5.pdf"
# 用文件对象来创建一个pdf文档分析器
praser = PDFParser(open(path, 'rb'))
# 创建一个PDF文档
doc = PDFDocument()
# 连接分析器 与文档对象
praser.set_document(doc)
doc.set_parser(praser)
# 提供初始化密码
# 如果没有密码 就创建一个空的字符串
doc.initialize()
# 检测文档是否提供txt转换,不提供就忽略
if not doc.is_extractable:
raise PDFTextExtractionNotAllowed
else:
# 创建PDf 资源管理器 来管理共享资源
rsrcmgr = PDFResourceManager()
# 创建一个PDF设备对象
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
# 创建一个PDF解释器对象
interpreter = PDFPageInterpreter(rsrcmgr, device)
# 循环遍历列表,每次处理一个page的内容
for page in doc.get_pages():
interpreter.process_page(page)
# 接受该页面的LTPage对象
layout = device.get_result()
# 这里layout是一个LTPage对象,里面存放着这个 page 解析出的各种对象
# 包括 LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等
for x in layout:
if isinstance(x, LTTextBox):
print(x.get_text().strip())WARNING:pdfminer.cmapdb:The code b'c\x07h\x07\xff\x0cOFT\x0ch7\x9a\xd8^\xa6S\xca\x91\xcd\x91\xcfv\x84N\xbab@b\xe5g\tv\x84\x81\x02\x80\xaa\x91\xcfS\xef\x80\xfdN\rT\x0c\xff\x0cN_\x01f/b\x11N\xec\x8b\xf4v\x84OS\x81\x02\x80\xaas\x87\xff\x0cb@N\xe5SUSUS\xeag\t' has an uneven length, trimming last byte. WARNING:pdfminer.cmapdb:The code b"g:OSS\xeag\tW(l'O\x9b^\x94QE\x8d\xb3v\x84`\xc5Q\xb5N\x0bbM\x80\xfdkc^8]\xe5O\x00\x02N\xbaOSQ\x85\x90\xe8v\x84l'O\x9b~\xd9Qh\x90\xe8\x97`\x80\xbav\x84T|T8ge\x83\xb7_\x97\xff\x0cW(T|T8" has an uneven length, trimming last byte. WARNING:pdfminer.cmapdb:The code b"\x91\xcfY'v\x84N\xbaQv\x8e\xabOSO\x9bl'\x80\xfdR\x9b\x01_:\xff\x0c_\xc3\x80\xbaR\x9f\x80\xfd_:Y'0\x02^\x0cg\x1b~\xe7~\xedO\xddc\x01\x82oY}v\x84Pe^\xb7u\x1fm;N``\xef0\x02" has an uneven length, trimming last byte.
中国石化 安庆石化公司 2021年09月 包永 00005 中国石化 安庆石化公司 姓名 编号 性别 年龄 1. 综合评定 包永 00005 男 44 测试标准 身高体重 肺活量 握力 坐位体前屈 纵跳 单脚站立 选择反应时 台阶指数 俯卧撑 国民体质测定标准 174.7 厘米, 73.6 公斤 3812 毫升 51 千克 20 厘米 38.4 厘米 13.2 秒 0.554 秒 65 分 39 次 5分 4分 4分 5分 4分 3分 3分 4分 5分 感谢您完成测试,以《国民体质测定标准》综合评级,您的总分为28分(其中项目纵跳、俯卧撑因 年龄或其它原因超出评级范围,得分仅供参考,不计入总分),等级为一级(优秀)。 2. 分析报告 身高(厘米) 174.7 体重(公斤) 73.6 理想BMI参考值:18.5 ~ 23.9 BMI 24.1 BMI是Body Mass Index的缩写,中文为「身高体重指数」,是以身高、体重比例拿来用作肥胖的 指标,但同样高度及重量的人所拥有的脂肪量可能不同,也Ŧ⽢ᅎ葏厁ʀꩳ蟿ౢ䁎啓啓 靠BMI值并无法完整反映出一个人的健康状态,建议可以两个数据搭配参考,对自己的身材更有了 解和掌握。 BMI值相同的人,体格可能不同。并不是每个人都适用BMI的。如:对肌肉很发达的运 动员或有水肿的病人,体重指数值可能较高,难以准确评估其肥胖程度。老年人的肌肉组织与其脂 肪组织相比,肌肉组织的减少较多,计算的体重指数值可能会低估其肥胖程度。而相等BMI值的女 性的体脂百分含量一般大于男性。 您的BMI值在正常范围之内。希望今后继续加强锻炼,保持良好的生活习惯。 肺活量(vital capacity)是指在最大吸气后尽力呼气的气量。包括潮气量、补吸气量和补呼气量三 部分。潮气量是指一次呼吸周期中肺吸量或呼出的气量,在潮气量之外再吸入的最大气量为补吸气 量,在潮气量之外再呼出的最最大量为补呼气量,最大呼气后残留在肺内的气量为余气量。 肺活量 与人的呼吸密切相关。生理学研究表明:人体的各器官、系统、组织、细胞每时每刻都在消耗氧, 机体只有在氧供应充足的情况下才能正常工伀Ɏ멏卑薐葬❏魾梐悀멶葔籔㡧斃띟響⡔籔 过程中,肺不仅要摄入氧气,还要将体内代谢出的二氧化碳排出。 可以这样认为:肺是机体气体交 换的中转站,这个中转站的容积大小直接决定着每次呼吸气体交换的量,这是检测肺功能的最直观、 也是最客观的指标。 健康状况愈好的人肺活量愈大,您的身体健康状况良好。肺活量能够反映一个人的心肺功能,肺活 量大的人其身体供氧能力ş㫿쎀멒龀ﵟ㩙✰ɞ౧᭾Ƃ潙絶葐敞띵Ὥ㭎恠 握力主要是测试上肢肌肉群的发达程度,测试受试者前臂和手部肌肉力量,反映人体上肢力量的发 展水平的一种指标。 在体能测试中,它常以握力体重指数的形式体现,即把握力的大小与被测人的 体重相联系,以获得最科学的体力评估。 握力测试偏重于力量,对于一般人而言,如果体检各项指 标正常且不是亚健康状态,即便握力较弱,基本不用担心影响寿命。 越来越多研究表明,握力强可 以保护我们免受心脏病、糖尿病和痴呆等疾病的侵害。 您的握力很好,研究发现握力强的健康中年人在记忆测试、推理和快速思考能力等方面表现更好, 说明您有健康的大脑,请保持良好的生活习惯。 坐位体前屈的测试目的是测量在静止状态下的躯干、腰、髋等关节可能达到的活动幅度,主要反映 这些部位的关节、韧带和肌肉的伸展性和弹性及身体柔韧素质的发展水平。 柔韧性是身体健康素质 的重要组成部分,经常做伸展练习可以保持肌腱、肌肉及韧带等软组织的弹性使柔韧性得到充分发 展,人体关节的活动范围将明显加大,关节灵活性也将增强。同时,动作将更加协调、准确、优美, 在体育活动和日常生活中可减少由于动作幅度加大、扭转过猛而产生的关节、肌肉等软组织损伤。 您的柔韧性程度较好,关节的活动幅度较大,关节灵活性较强。柔韧素质与健康的关系极为密切, 您的柔韧性高,也说明身体的协调能力强,能更好地发挥力量、速度等素质,对防止运动创伤等都 有积极的作用。 纵跳主要用来量化人体的爆发力,是人体肌肉力量、身体柔韧性、协调性的综合体现。 通过纵跳, 可以强化人的大小腿的肌肉,增强下肢力量,让人行走过程中步伐稳健,不易跌倒;同时可以增强 人体缓冲退让能力,使肌腱、韧带、肌肉都得到锻炼。 平时通过纵跳活动,能够活动筋骨,加强体 内物质代谢,增强骨骼强度和密度。 您的成绩良好,表明您肌肉力量、身体柔韧性、协调性方面综合性表现良好。希望今后加强锻炼, 注意保持。 闭眼单脚站立是通过测量人体在没有任何可视参照物的情况下,仅依靠大脑前庭器官的平衡感受器 和全身肌肉的协调运动,来维持身体重心在单脚支撑面上的时间,以反映平衡能力的强弱。 闭眼单 脚站立,归根到底,还是在测试人的平衡能力。平衡能力不仅是人们日常生活和体育活动中必须具 备的一种能力,它更是一种复杂的人体综合能力,平衡力下降,危害可想而知。近年来,我国国民 整体的平衡能力呈下降趋势,尤其是中老年群体。 您的成绩较低,说明身体老化比正常情况快,尤其是在平衡能力方面需要加强锻炼,建议经常练习 金鸡独立等锻炼人体平衡性的运动。 选择反应时是一个很敏锐的反应变量指标,是作为测量反应速度快慢及反应前后心理活动过程的客 观指标。 选择反应时能体现人的智力和能力,也可作为一种可靠的心理活动指标,测定大脑皮层的 兴奋和抑制功能,分析人的感觉,注意学习与记忆思维个性差别等各种心理活动。 您的成绩较低,可以参与针对性体育运动来提高反应速度和心理因素等方面的能力,比如太极拳, 瑜伽等。 台阶指数是用来评价心肺功能适应水平的方法。研究表明:心肺适应能力强的人比心肺适应能力弱 的人在运动后3分钟恢复期内心跳频率低。研究表明:心肺适应能力强的人比心肺适应能力弱的人 在运动后3分钟恢复期内心跳频率低。 台阶指数也是反映人体心血管系统机能状况的重要指数。台 阶试验指数值越大,则反映你心血管系统的机能水平越高,反之亦然,不过具体情况还要视被测人 的身高、体重和肺活量而定。 您的指数较好,在一定程度上反映出心血管系统机能很好,心肺适应能力较强。你的血液循环系统 工作正常——你的血管是健康的。请继续保持良好的生活习惯。 俯卧撑属于一种比较全面的锻炼方式,主要锻炼的是肱三头肌、腹肌等上肢肌肉,可以起到健美身 型的效果。同时能够加强心肺功能,促进身体血液循环,减少患病的比率。 俯卧撑对发展平衡和支 撑能力也起重要作用。可以改善中枢神经系统,有益于骨骼的坚实,关节的灵活,韧带的牢固,肌 肉的粗壮及弹性,同时能加速血液循环,增大肺活量,促进生长发育,提高运动能力。 结合身体情 况经常做俯卧撑,能让人心情放松,精力充沛,更好的投入到工作学习中。另外,俯卧撑对于消除 身体的赘肉也有一定效果,有利于减肥。 您的成绩良好,表明您肌肉力量等综合性表现良好。希望今后加强锻炼,注意保持。 3. 智慧健康方案 每个项目都与脏腑功能、人体八大系统能力息息相关,设法提高项目成绩,也可以改善潜在的亚健 康状态。 建议分类 建议项 您的身体状态非常好。几乎没有相关性较高的建议,希望您继续保持。系统会整合您的所有项目 成绩,依据相应年龄段、性别的每个项目与脏腑、经络、人体系统及子系统的权重和关系形成条 件,筛选出符合条件的所有身体机能成绩组合。特殊体质、职业(如运动相关)的人群可能存在 偏差,请以医院诊断为准。
In [14]:
import pdfplumber
# 读取 PDF 文档
pdf = pdfplumber.open("5.pdf")
# 获取页数
print("总页数:",len(pdf.pages))
print("-----------------------------------------")
# 读取第 4 页;索引从 1 开始
page = pdf.pages[4]
print("本页:",page.page_number + 1)
print("-----------------------------------------")
# 导出第 4 页文本
text = page.extract_text()
print(text)[0;31m---------------------------------------------------------------------------[0m [0;31mImportError[0m Traceback (most recent call last) [0;32m<ipython-input-14-1ad7fc39921b>[0m in [0;36m<module>[0;34m[0m [0;32m----> 1[0;31m [0;32mimport[0m [0mpdfplumber[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 2[0m [0;34m[0m[0m [1;32m 3[0m [0;31m# 读取 PDF 文档[0m[0;34m[0m[0;34m[0m[0;34m[0m[0m [1;32m 4[0m [0mpdf[0m [0;34m=[0m [0mpdfplumber[0m[0;34m.[0m[0mopen[0m[0;34m([0m[0;34m"5.pdf"[0m[0;34m)[0m[0;34m[0m[0;34m[0m[0m [1;32m 5[0m [0;34m[0m[0m [0;32m~/data/lib/python3.8/site-packages/pdfplumber/__init__.py[0m in [0;36m<module>[0;34m[0m [1;32m 8[0m [0;34m[0m[0m [1;32m 9[0m [0;32mfrom[0m [0;34m.[0m[0m_version[0m [0;32mimport[0m [0m__version__[0m[0;34m[0m[0;34m[0m[0m [0;32m---> 10[0;31m [0;32mfrom[0m [0;34m.[0m[0mpdf[0m [0;32mimport[0m [0mPDF[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 11[0m [0;32mfrom[0m [0;34m.[0m [0;32mimport[0m [0mutils[0m[0;34m[0m[0;34m[0m[0m [1;32m 12[0m [0;32mimport[0m [0mpdfminer[0m[0;34m[0m[0;34m[0m[0m [0;32m~/data/lib/python3.8/site-packages/pdfplumber/pdf.py[0m in [0;36m<module>[0;34m[0m [1;32m 7[0m [0;32mimport[0m [0mitertools[0m[0;34m[0m[0;34m[0m[0m [1;32m 8[0m [0;32mfrom[0m [0mpdfminer[0m[0;34m.[0m[0mpdfparser[0m [0;32mimport[0m [0mPDFParser[0m[0;34m[0m[0;34m[0m[0m [0;32m----> 9[0;31m [0;32mfrom[0m [0mpdfminer[0m[0;34m.[0m[0mpdfdocument[0m [0;32mimport[0m [0mPDFDocument[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 10[0m [0;32mfrom[0m [0mpdfminer[0m[0;34m.[0m[0mpdfpage[0m [0;32mimport[0m [0mPDFPage[0m[0;34m[0m[0;34m[0m[0m [1;32m 11[0m [0;32mfrom[0m [0mpdfminer[0m[0;34m.[0m[0mpdfinterp[0m [0;32mimport[0m [0mPDFResourceManager[0m[0;34m[0m[0;34m[0m[0m [0;32m~/data/lib/python3.8/site-packages/pdfminer/pdfdocument.py[0m in [0;36m<module>[0;34m[0m [1;32m 12[0m [0;32mfrom[0m [0;34m.[0m[0mpsparser[0m [0;32mimport[0m [0mPSEOF[0m[0;34m,[0m [0mliteral_name[0m[0;34m,[0m [0mLIT[0m[0;34m,[0m [0mKWD[0m[0;34m[0m[0;34m[0m[0m [1;32m 13[0m [0;32mfrom[0m [0;34m.[0m [0;32mimport[0m [0msettings[0m[0;34m[0m[0;34m[0m[0m [0;32m---> 14[0;31m [0;32mfrom[0m [0;34m.[0m[0mpdftypes[0m [0;32mimport[0m [0mPDFException[0m[0;34m,[0m [0muint_value[0m[0;34m,[0m [0mPDFTypeError[0m[0;34m,[0m [0mPDFStream[0m[0;34m,[0m[0;31m [0m[0;31m\[0m[0;34m[0m[0;34m[0m[0m [0m[1;32m 15[0m [0mPDFObjectNotFound[0m[0;34m,[0m [0mdecipher_all[0m[0;34m,[0m [0mint_value[0m[0;34m,[0m [0mstr_value[0m[0;34m,[0m [0mlist_value[0m[0;34m,[0m[0;31m [0m[0;31m\[0m[0;34m[0m[0;34m[0m[0m [1;32m 16[0m [0mdict_value[0m[0;34m,[0m [0mstream_value[0m[0;34m[0m[0;34m[0m[0m [0;31mImportError[0m: cannot import name 'uint_value' from 'pdfminer.pdftypes' (/home/songyi/data/lib/python3.8/site-packages/pdfminer/pdftypes.py)
In [18]:
import PyPDF2
import textract
#open能让你读取文件
pdfFileObj = open('5.pdf','rb')
#变量pdfReader是即将被解析的可读对象
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
#分辨清楚页码数量能让我们解析所有页码的文件
num_pages = pdfReader.numPages
count = 0
text = ""
# while 循环会读取每一页
while count < num_pages:
pageObj = pdfReader.getPage(count)
count +=1
text += pageObj.extractText()
#这里的if语句用以检查上面的库是否返回了词汇,因为PyPDF2 无法读取扫描文本
if text != "":
text = text
# 如果上面返回False,就运行库textract 将PDF扫描文件转换为文本
print(text)
# 现在我们获得了一个text变量,包含了从PDF文件中提取的文本。
# 输入print(text)查看包含的内容。可能会包含很多空格,可能还有’\n’等这样的字眼。
# 下面我们会清洗得到的text变量,将其返回为一列关键字。`'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚ `'R+u7”«ıØOS‚Í•ºm;‚ÏcáRłWPOMOSRM\H~µ“óSU†ˆzÙzËOïSgd‚^ú‰®Ÿy
In [ ]: