礼盒包装设计网站,面包屑导航wordpress,做粤菜的视频网站,景区网站建设方案 费用使用python读取文件#xff0c;其中pdf、docx、pptx可以直接读#xff0c;.ppt和.doc文件不能直接读#xff0c;需要转换成.pptx和.docx文件#xff0c;并且需要区分系统 如果是linux系统#xff0c;请先安装组件
#doc2docx
yum install -y libreoffice-headless
yum ins…使用python读取文件其中pdf、docx、pptx可以直接读.ppt和.doc文件不能直接读需要转换成.pptx和.docx文件并且需要区分系统 如果是linux系统请先安装组件
#doc2docx
yum install -y libreoffice-headless
yum install -y libreoffice-writer# ppt2pptx
yum install epel-release -y
yum install libgdiplus -y
pip3 install aspose.slidespython代码如下
import osdef read_pptx(fp):import pptxprs pptx.Presentation(fp)for i, slide in enumerate(prs.slides):# if i 1: 在这里可以指定提取ppt的具体页数for shape in slide.shapes:if shape.has_text_frame:text_frame shape.text_frameprint(str(i) 页 text_frame.text)def read_ppt(fp):import platformos_type platform.system()if os_type Windows:import win32com.client as wcpowerpoint wc.Dispatch(PowerPoint.Application)wc.gencache.EnsureDispatch(PowerPoint.Application)powerpoint.Visible 1ppt powerpoint.Presentations.Open(fp)ppt.SaveAs(fpx)powerpoint.Quit()elif os_type Linux:import aspose.slides as slideswith slides.Presentation(fp) as presentation:presentation.save(fpx, slides.export.SaveFormat.PPTX)read_pptx(fpx)def read_docx(fp):import docxfile docx.Document(fp)print(段落数: str(len(file.paragraphs))) # 段落数为13每个回车隔离一段# 输出每一段的内容for para in file.paragraphs:print(para.text)def read_doc(fp):import platformos_type platform.system()if os_type Windows:import doc2docxdoc2docx.convert(fp,fpx)elif os_type Linux:import subprocesssubprocess.check_output([soffice, --headless, –-invisible, --convert-to, docx, fp, --outdir, fpx])read_docx(fp x)def read_pdf(fp):import pdfplumberpdfFile open(fp,rb)pdf pdfplumber.open(pdfFile)for page in pdf.pages:text page.extract_text()print(text)# file_path *.pptx
file_path *.ppt
# file_path *.docx
# file_path *.doc
# file_path *.pdf
file_extension os.path.splitext(file_path)[-1].lower()
print(文件后缀 file_extension)
if file_extension .pptx:print(读取pptx文件)read_pptx(file_path)
elif file_extension .ppt:print(读取ppt文件)read_ppt(file_path)
elif file_extension .docx:print(读取docx文件)read_docx(file_path)
elif file_extension .doc:print(读取doc文件)read_doc(file_path)
elif file_extension .pdf:print(读取pdf文件)read_pdf(file_path)