zoukankan      html  css  js  c++  java
  • python读取doc

    import os, time, fnmatch
    from docx import Document
    
    
    class search:
    
    
      def __init__(self, path, search_string, file_filter):
    
        self.search_path = path
        self.search_string = search_string
        self.file_filter = file_filter
    
        print ("Search %s in %s..." % (
          self.search_string, self.search_path
        ) )
    
        print ("_" * 80)
        time_begin = time.time()
        file_count = self.walk()
    
        print ("_" * 80)
        print ("%s files searched in %0.2fsec." % (
          file_count, (time.time() - time_begin)
        ))
    
    
    #遍历所有的文件,记录文件数量
      def walk(self):
        file_count = 0
        for root, dirlist, filelist in os.walk(self.search_path, followlinks=True):
          for filename in filelist:
            for file_filter in self.file_filter:
              if fnmatch.fnmatch(filename, file_filter):
                self.search_file(os.path.join(root, filename))
                file_count += 1
        return file_count
    
    
    
    
    #遍历文件中的字符串,并且剪切显示出来
      def search_file(self, filepath):
        d = Document(filepath)
        for para in d.paragraphs:
          if self.search_string in d.paragraphs:
            print(filepath)
            self.cutout_content(content)
    	
      
    
    
    #剪切字符串并且显示
      def cutout_content(self, content):
        current_pos = 0
        search_string_len = len(self.search_string)
        for i in xrange(max_cutouts):
          try:
                  #从current_pos位置往后寻找self.search_string个字符串
            pos = content.index(self.search_string, current_pos)
          except ValueError:
            break
    #将显示窗口定义为寻找到的关键字向前向后各content_extract个字符
          content_window = content[ pos - content_extract : pos + content_extract ]
          print (">>>", content_window.encode("String_Escape"))
          current_pos += pos + search_string_len
        print
    
    
    #主程序入口
    if __name__ == "__main__":
      search_path = r"c:UsersAdministratorDesktop"
      file_filter = ("*.docx",".doc") # fnmatch-Filter
      search_string = "history"
      content_extract = 35 #获取摘要35
      max_cutouts = 20 #显示窗口20
      search(search_path, search_string, file_filter)
    

      

  • 相关阅读:
    leetcode题目19.删除链表的倒数第N个节点(中等)
    Android学习笔记---使用Service模仿下载效果
    Android学习笔记-简单聊天界面的实现
    Android学习笔记-ContentProvider操作
    Android高级-Android操作SQL数据管理,增删改查
    Android高级-正则表达式
    Android高级-SQL语言
    Android学习之路-录音功能实现
    gitee上传下载代码命令
    opencv进行视频播放每帧处理,读取视频失败
  • 原文地址:https://www.cnblogs.com/c-x-a/p/8566098.html
Copyright © 2011-2022 走看看