程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

读取txt、doc、docx、pdf文件——python

hfteth 2025-01-06 21:47:42 技术文章 15 ℃

一、 读取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

导入对应包

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 # 返回读取到的文件内容

Tags:

最近发表
标签列表