python读取txt文件存为字典 读取txtdocdocx

一、 读取txt文件

直接使用open()函数

def readTxt(name): ftxt = open(name,'r',encoding='utf-8') x = ftxt.read() ftxt.close() return x

二、 读取doc、docx文件

  1. 读取docx文件

需要引入python-docx模块

命令行安装:pip install python-docx

pycharm安装:File-->Settings-->Project:index.py-->Python Interpreter

python读取txt文件存为字典 读取txtdocdocx(1)

导入对应包

def readWord(name): # 读取word import docx # 引入python-docx模块 fword = docx.Document(name) # name为文件路径 str1 = '' for para in fword.paragraphs: # 读取word的每一段内容 str1 = para.text #para.text即为该段落的内容 return str1 # 返回读取到的文件内容

2.读取doc文件

python-docx只能读取docx文件,无法读取doc文件;

可以先将doc文件转化为docx文件,然后用python-docx读取;

安装pywin32包:

命令行安装:pip install pywin32

pycharm安装:参照上方docx段落中的操作;

def docTodocx(path,fileName): from win32com import client as wc #引入pywin32包 word = wc.Dispatch("Word.Application") #创建对象 doc = word.Documents.Open(path "/" fileName ".doc")#读取doc文件 doc.SaveAs(path "/" fileName ".docx",12) #保存docx文件 doc.Close() word.Quit()

三、 读取pdf文件

需要引入包pdfminer3k

命令行安装: pip install pdfminer3k

pycharm安装:参照上方docx段落中的操作;

def readPdf(name): from pdfminer.pdfparser import PDFParser, PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LTTextBoxHorizontal, LAParams from pdfminer.pdfinterp import PDFTextExtractionNotAllowed text_path = r'' name #name是文件路径 fpdf = open(text_path, 'rb') parser = PDFParser(fpdf) # 用文件对象创建一个PDF文档分析器 doc = PDFDocument() # 创建一个PDF文档 parser.set_document(doc) # 连接分析器与文档对象 doc.set_parser(parser) doc.initialize() strs = '' if not doc.is_extractable: # 检测文档是否提供txt转换,不提供就忽略 raise PDFTextExtractionNotAllowed else: pdfMgr = PDFResourceManager() # 创建PDF,资源管理器,来共享资源 laparams = LAParams() # 创建一个PDF设备对象 device = PDFPageAggregator(pdfMgr, laparams = laparams) interpreter = PDFPageInterpreter(pdfMgr, device) # 创建一个PDF解释其对象 for page in doc.get_pages(): interpreter.process_page(page) # doc.get_pages() 获取page列表 layout = device.get_result() # 接受该页面的LTPage对象 # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象 # 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 # 想要获取文本就获得对象的text属性, for x in layout: if (isinstance(x, LTTextBoxHorizontal)): strs = x.get_text() return strs # 返回读取到的文件内容

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页