• 技术文章 >后端开发 >Python教程

    如何从python文件中提取信息?3分钟搞懂Python文本分析和提取

    TomorinTomorin2018-08-16 17:38:40原创10525
    单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个python小程序把所需的信息打印出来,这个小程序就能从Python文本中分析信息并提取信息

    #coding:utf-8
     
    import os
    import win32com
    from win32com.client import Dispatch, constants
    from docx import Document
     
    def parse_doc(f):
      """读取doc,返回姓名和行业
      """
      doc = w.Documents.Open( FileName = f )
      t = doc.Tables[0] # 根据文件中的图表选择信息
      name = t.Rows[0].Cells[1].Range.Text  
      situation = t.Rows[0].Cells[5].Range.Text
      people = t.Rows[1].Cells[1].Range.Text
      title = t.Rows[1].Cells[3].Range.Text  
      print name, situation, people,title
      doc.Close()
     
    def parse_docx(f):
      """读取docx,返回姓名和行业
      """
      d = Document(f)
      t = d.tables[0]
      name = t.cell(0,1).text
      situation = t.cell(0,8).text
      people = t.cell(1,2).text
      title = t.cell(1,8).text
      print name, situation, people,title
     
     
    if __name__ == "__main__":
       
      w = win32com.client.Dispatch('Word.Application')
       
      # 遍历文件
      PATH = "H:\work\\aaa" # windows文件路径
      doc_files = os.listdir(PATH)
      for doc in doc_files:
        if os.path.splitext(doc)[1] == '.docx':
          try:
            parse_docx(PATH+'\\'+doc)
          except Exception as e:
            print e
        elif os.path.splitext(doc)[1] == '.doc':
          try:
            parse_doc(PATH+'\\'+doc)
          except Exception as e:
            print e

    下载安装win32com

    from win32com import client as wc
     word = wc.Dispatch('Word.Application')
     doc = word.Documents.Open('c:/test')
     doc.SaveAs('c:/test.text', 2)
     doc.Close()
     word.Quit()

    这种方式产生的text文档,不能用python用普通的r方式读取,为了让python可以用r方式读取,应当写成
    doc.SaveAs('c:/test', 4)
    注意:系统执行完成后,会自动产生文件后缀txt(虽然没有指明后缀)。
    在xp系统下面,应当,

    open(r'c:\text','r')
    wdFormatDocument = 0 wdFormatDocument97 = 0 wdFormatDocumentDefault = 16 wdFormatDOSText = 4 
    wdFormatDOSTextLineBreaks = 5 wdFormatEncodedText = 7 wdFormatFilteredHTML = 10 wdFormatFlatXML = 19 
    wdFormatFlatXMLMacroEnabled = 20 wdFormatFlatXMLTemplate = 21 wdFormatFlatXMLTemplateMacroEnabled = 22
     wdFormatHTML = 8 wdFormatPDF = 17 wdFormatRTF = 6 wdFormatTemplate = 1 
     wdFormatTemplate97 = 1 wdFormatText = 2 wdFormatTextLineBreaks = 3 wdFormatUnicodeText = 7 
     wdFormatWebArchive = 9 wdFormatXML = 11 
     wdFormatXMLDocument = 12 wdFormatXMLDocumentMacroEnabled = 13 wdFormatXMLTemplate = 14 
     wdFormatXMLTemplateMacroEnabled = 15 wdFormatXPS = 18

    照着字面意思应该能对应到相应的文件格式,如果你是office 2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字 8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用 wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML 明显比wdFormatHTML要干净许多。

    以上就是如何从python文件中提取信息?3分钟搞懂Python文本分析和提取的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python提取信息
    上一篇:sqlite如何安装?简单说明Python中self用法详解 下一篇:python os.chown() 方法是什么?它有什么样的作用?
    PHP编程就业班

    相关文章推荐

    • 带你搞懂Python反序列化• 归纳整理python正则表达式解析• 简单介绍一下Python(图文详解)• 一起聊聊Python的编码样式• 详细解析Python之关键字

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网