精华内容
下载资源
问答
  • 2020-12-04 13:17:41

    单词对象模型可以找到here。您的doc对象将包含这些属性,您可以使用它们执行所需的操作(请注意,我没有将此功能用于Word,因此我对对象模型的了解很少)。例如,如果要阅读文档中的所有单词,可以执行以下操作:for word in doc.Words:

    print word

    你会得到所有的单词。这些word项中的每一项都是Word对象(引用here),因此您可以在迭代期间访问这些属性。在您的情况下,以下是如何获得风格:

    ^{pr2}$

    在带有单个标题1和普通文本的示例文档上,将打印:Heading 1

    Heading 1

    Heading 1

    Heading 1

    Heading 1

    Normal

    Normal

    Normal

    Normal

    Normal

    要将标题组合在一起,可以使用itertools.groupby。如下面的代码注释所述,您需要引用对象本身的str(),因为使用word.Style返回的实例不会与相同样式的其他实例正确分组:from itertools import groupby

    import win32com.client as win32

    # All the same as yours

    word = win32.Dispatch("Word.Application")

    word.Visible = 0

    word.Documents.Open("testdoc.doc")

    doc = word.ActiveDocument

    # Here we use itertools.groupby (without sorting anything) to

    # find groups of words that share the same heading (note it picks

    # up newlines). The tricky/confusing thing here is that you can't

    # just group on the Style itself - you have to group on the str().

    # There was some other interesting behavior, but I have zero

    # experience with COMObjects so I'll leave it there :)

    # All of these comments for two lines of code :)

    for heading, grp_wrds in groupby(doc.Words, key=lambda x: str(x.Style)):

    print heading, ''.join(str(word) for word in grp_wrds)

    该输出:Heading 1 Here is some text

    Normal

    No header

    如果您将join替换为列表理解,您将得到以下结果(您可以在这里看到换行符):Heading 1 ['Here ', 'is ', 'some ', 'text', '\r']

    Normal ['\r', 'No ', 'header', '\r', '\r']

    更多相关内容
  • Word中大文档如何提取目录.docx
  • 本工具使用Java语言开发,使用需要安装JDK 8 ...第二步:将需要提取文档放入D盘根目录,并修改名称为1.docx(也可以浏览源码自行修改配置) 第三步:打开cmd命令行窗口,进入桌面,运行命令java -jar table-1.0-SNAPSHOT.jar
  • 摘要:Delphi源码,数据库应用,提取文档 从SQL Server中提取Word文档,Delphi源码实现,测试之前请先连接好数据库信息,数据库文件Database目录中,是一个数据库与文件操作相结合的例子。
  • 从文本文档和字符串中提取重要数据的工具Sammler从文本文档和字符串中提取重要数据的工具支持的数据类型电子邮件IP地址MAC地址日期和时间信用卡号码域电话号码用法将每个文件或字符串传递到使用-f /-file标志进行...
  • 文档中提取有价值的信息。 目录 入门 先决条件 Python 3.6(或更高版本) 安装 您可以使用安装软件包,如下所示: pip install python-doctr 用法 Python包 您可以像使用其他任何python包一样使用该库来分析文档...
  • officeparser.py Officerparser.py是一个Python脚本,用于解析Microsoft Office应用程序使用的OLE复合文档的格式... 这将提取所有可Office文档中检测到的宏代码。 使用-o或--output-dir选项指定用于存储文件的目录
  • 基于.netcore3.1开发的图片提取工具,批量提取文件夹下所有的word和excel文档中的图片保存到指定目录
  • OCR Web界面,用于自动从目录中提取联系人 ##它有什么作用? ScanDB用作Web界面。 将其安装服务器上,即可开始为目录和其他业务详细信息源中的信息编制索引。 ##要求 OpenCV Python 2.7 的Django 1.7 芹菜...
  • 只需从源文件中提取文档注释。 目录 背景 我创建这个项目是因为我觉得所有其他“解析源代码注释以生成文档”解决方案都无法满足我的需求。 是过时的,过时的,其假设使得很难没有非常类似于C的语法的情况下扩展...
  • DyAnnotationExtractor DyAnnotationExtractor是用于从PDF之类的电子文档提取注释(突出显示的文本和注释)的软件。 提取的部分可用于构建文档的摘要/简历。...这将同一目录中创建一个具有相同名称的文件,并添加
  • 使用VBA提取文件夹内所有word文档中的表格数据
  • 将word目录结构树提取出来放到html的左侧并生成相应的树目录html点击树目录时整个页面可以跳到对应的位置
  • 文档目录提取器,自动更新目录页码变化,让你一分钟完成目录制作,小事情不求人啦~~
  • 根据关键词,从Word文档里的表格中提取所需要的数据汇总到Excel,并汇总到Excel做台帐。 二、分析及思路 常规表格,我们一般会通过横向填写或者竖向填写的方式来进行内容的填写,有些单元格还会有合并的情况,...

    一、需求

    根据关键词,从Word文档里的表格中提取所需要的数据汇总到Excel中,并汇总到Excel中做台帐。

    二、分析及思路

    常规表格中,我们一般会通过横向填写或者竖向填写的方式来进行内容的填写,有些单元格还会有合并的情况,如下图所示,通过 python 的 docx 模块,可以完成 word 文档的信息提取:
    在这里插入图片描述

    2.1 遍历文件夹中,需要提取的 docx 文件(这里最好是把将要提取的文件放在一个文件夹中)
    2.2 通过 docx 模块里面的 table 方法,通过读取行/列的方式,遍历所有表格及表格中的内容;
    2.3 通过给定的关键词,筛选出需要的数据;
    2.4 将获取到的所有数据通过 pandas 存储的方式保存至 excel 中。

    三、整体代码

    from docx import Document
    from openpyxl import load_workbook
    import pandas as pd
    import glob
    
    '''
    关键词存储在excel表格中,先提取(也可以直接手动写一个字典用于存储关键词)
    '''
    workbook = load_workbook(filename = '1.xlsx')
    sheet = workbook.active
    data_size = sheet.dimensions
    dic={}
    for cell in sheet[data_size][0]:
    	dic[cell.value]=''
    
    '''
    遍历docx文件,读取表格相关内容
    '''
    doc_ls=[]
    dic1={}
    for path in glob.glob('*.docx'):
    	doc = Document(path)
    	for table in doc.tables:
    		try:
    		# 按行的方式读取
    			for rows in table.rows:
    				for i in range(0,len(rows.cells)):
    					if rows.cells[i].text in list(dic.keys()):
    						key = rows.cells[i].text
    						value = rows.cells[i+1].text
    						dic1[key] = [value]
    			doc_ls.append(pd.DataFrame(dic1))
    
    		except:
    		# 按列的方式读取
    			for cols in table.columns:
    				for i in range(0,len(cols.cells)):
    					if cols.cells[i].text in list(dic.keys()):
    						key = cols.cells[i].text
    						value = cols.cells[i+1].text
    						dic1[key] = [value]
    			doc_ls.append(pd.DataFrame(dic1))
    
    '''
    文件的合并存储
    '''
    df = pd.concat(doc_ls)
    df.to_excel('提取后数据.xlsx')
    

    代码相对简单,测试数据目前相对较少,可能有bug。

    四、截图:

    4.1 关键词的存储方式
    在这里插入图片描述
    4.2 提取后的数据
    在这里插入图片描述

    展开全文
  • 提取文件名的批处理文件,可提取本层目录目录下的所有文件的名称。支持windows平台运行。
  • 需求: 改一个年级80人的周记评阅时,每个学生用一个大标题记录;当改该年级的实习报告时,想基于周记评阅创建一个新的文档。...把周记的所有标题提取出来,然后复制标题到新的WORD文档中。 ...

    需求:

     改一个年级80人的周记评阅时,每个学生用一个大标题记录;当改该年级的实习报告时,想基于周记评阅创建一个新的文档。

    方案:

    把周记中的所有标题提取出来,然后复制标题到新的WORD文档中。

    展开全文
  • 当你想批量提取文档(如简历)的电话和邮箱,可以参考以下代码: import os from win32com import client as wc import glob from shutil import copyfile import os.path,re from pdfminer.pdfinterp import ...

    当你想批量提取文档(如简历)中的电话和邮箱,可以参考以下代码:

    提取结果保存在“resumes.xlsx”表格中。

    
    import os
    from win32com import client as wc
    import glob
    from shutil import copyfile
    import os.path,re
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
    from pdfminer.converter import PDFPageAggregator
    from pdfminer.layout import LAParams
    from pdfminer.pdfpage import PDFTextExtractionNotAllowed,PDFPage
    from pdfminer.pdfparser import PDFParser
    from pdfminer.pdfdocument import PDFDocument
    from openpyxl import Workbook
    
    '''
    step 1:
    将doc、docx格式的简历转换为 pdf 文件后复制到 pdfPath 文件夹下,
    将pdf格式的简历直接复制到 pdfPath 文件夹下,
    '''
    
    word = wc.Dispatch('Word.Application')
    
    print('当前工作路径:' + os.getcwd())
    
    # 处理路径
    FolderPath = os.getcwd()                    # 脚本工作路径
    SaveFolderPath = FolderPath + '\\pdfPath'   # pdf 格式简历保存路径
    os.mkdir(SaveFolderPath)                    # 创建文件夹
    WordPath = FolderPath + '/*[doc, docx]'     # 筛选出doc和docx格式的文件
    PdfPath = FolderPath + '/*[pdf]'            # 筛选出pdf格式的文件
    
    print('\n简历格式转换处理中...\n')
    # 将当前目录下的 doc,docx 文件转换成 pdf 文件后,放到pdfPath文件夹
    files = glob.glob(WordPath)
    for file_path_word in files:
        # 获取文件名
        name = os.path.basename(file_path_word)
        names = re.findall(r'(.*?).doc', name)[0]
        print(names + '.pdf')
        doc = word.Documents.Open(file_path_word)
        doc.SaveAs(SaveFolderPath + '\\%s.pdf'%names, 17)
        doc.Close()
    
    # 将当前目录下的 pdf 文件拷贝到 pdfPath 文件夹
    files = glob.glob(PdfPath)
    for file_path_pdf in files:
        name = os.path.basename(file_path_pdf)
        names = re.findall(r'(.*?).pdf',name)[0]
        print(names + '.pdf')
        copyfile(file_path_pdf, SaveFolderPath + '\\%s.pdf'%names)
    
    word.Quit()
    
    '''
    step 2:
    解析pdf文件
    '''
    
    class CPdf2TxtManager():
    
        def changePdfToText(self, filePath):
    
            getInfo = {'Phone': None, 'Email': None}
    
            # 以二进制读模式打开
            file = open(filePath, 'rb')
            # 用文件对象来创建一个pdf文档分析器
            praser = PDFParser(file)
            # 创建一个PDF文档对象存储文档结构,提供密码初始化,没有就不用传该参数
            doc = PDFDocument(praser, password='')
            # 检查文件是否允许文本提取
            if not doc.is_extractable:
                raise PDFTextExtractionNotAllowed
    
            # 创建PDf 资源管理器 来管理共享资源,#caching = False不缓存
            rsrcmgr = PDFResourceManager(caching = False)
            # 创建一个PDF设备对象
            laparams = LAParams()
            # 创建一个PDF页面聚合对象
            device = PDFPageAggregator(rsrcmgr, laparams=laparams)
            # 创建一个PDF解析器对象
            interpreter = PDFPageInterpreter(rsrcmgr, device)
            # 获得文档的目录(纲要),文档没有纲要会报错
            # PDF文档没有目录时会报:raise PDFNoOutlines  pdfminer.pdfdocument.PDFNoOutlines
            # print(doc.get_outlines())
    
            # 获取page列表
            #print(PDFPage.get_pages(doc))
            # 循环遍历列表,每次处理一个page的内容
            for page in PDFPage.create_pages(doc):
                interpreter.process_page(page)
                # 接受该页面的LTPage对象
                layout = device.get_result()
                # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象
                # 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等
                for x in layout:
                    if hasattr(x, 'get_text'):
                        fileNames = os.path.splitext(filePath)
                        results = x.get_text()
                        # print('###' + results)
    
                        # 匹配邮箱
                        emailRegex = re.compile(r'''(
                            [a-zA-Z0-9._%+-]+ 	# 邮箱用户名
                            @ # @ symbol
                            [a-zA-Z0-9.-]+ 		# 域名
                            (.[a-zA-Z]{2,4}) 	# 域名后缀
                            )''', re.VERBOSE)
    
                        matchedEmail = emailRegex.search(results)
                        if matchedEmail:
                            # print(matchedEmail.group())
                            getInfo['Email'] = matchedEmail.group()
    
                        # 匹配手机号
                        phoneRegex = re.compile(r'''(
                            ([1])                           # 手机号码通常以‘1’开始
                            (\d{2})                         # 紧随其后有两个数字
                            (\s|-|.|'')?					# 可能有分隔符如‘-’ ‘.’ 或空格
                            (\d{4}) 						# 四个数字
                            (\s|-|.|'')? 					# 可能有分隔符如‘-’ ‘.’ 或空格
                            (\d{4}) 						# 四个数字
                            (\s*(ext|x|ext.)\s*(\d{2,5}))?  # extension
                            )''', re.VERBOSE)
    
                        matchedPhone = phoneRegex.search(results)
                        if matchedPhone:
                            # print(matchedPhone.group())
                            phoneNumber = matchedPhone.group()
                            phoneNumber = phoneNumber.replace(' ', '')  # 去除空格
                            phoneNumber = phoneNumber.replace('-', '')  # 去除 '-'
                            phoneNumber = phoneNumber.replace('.', '')  # 去除 '.'
                            getInfo['Phone'] = phoneNumber
            return getInfo
    
    '''
    step 3:
    保存求职者信息到Excel文件
    '''
    
    print('\n简历信息提取...')
    
    dirs = os.listdir(SaveFolderPath)   # 搜索目录
    pdf2TxtManager = CPdf2TxtManager()
    
    wb = Workbook() # 创建文件对象
    ws = wb.active  # 获取第一个sheet
    
    # 将数据写入到指定的单元格
    ws['A1'] = '姓名'
    ws['B1'] = '电话'
    ws['C1'] = '邮箱'
    
    # 提取求职者的联系方式,并写入Excel文件对象
    i = 2
    for file in dirs:
        retInfo = pdf2TxtManager.changePdfToText(SaveFolderPath + '\\' + file)
        name = re.findall(r'(.*?).pdf',file)[0]
    
        print('\n <%d> '%(i-1) + '='*50)
        print('姓名:' + name)
        print('电话:' + retInfo['Phone'])
        print('邮箱:' + retInfo['Email'])
    
        ws['A'+str(i)] = name  # 写入姓名
        ws['B'+str(i)] = retInfo['Phone']  # 写入电话
        ws['C'+str(i)] = retInfo['Email']  # 写入邮箱
        i = i+1
    
    # 保存为resumes.xlsx
    wb.save(FolderPath + '\\' + 'resumes.xlsx')
    
    print('\n提取记录已保存在' + FolderPath + '\\' + 'resumes.xlsx')
    print('\n恭喜,提取完成,按任意键退出。')
    input()
    展开全文
  • bat文件生成 ...用途:提取目录名与文件名到txt文件 复制粘贴以下内容 dir/a/s/b>LIST.TXT pause 其中:/b是去掉多余信息,其中把/a改/ad 表示只要文件夹,如果改成/a-d则是只要文件。 ...
  • Aspose.PDF for .NET(点击下载)是一种高PDF处理和解析API,用于跨平台应用程序执行文档管理和操作任务。API可以轻松用于生成、修改、转换、渲染、保护和打印PDF文档,而无需使用Adobe Acrobat。此外,API还...
  • 利用java从docx文档中提取文本内容

    千次阅读 2018-06-18 21:26:30
    利用java从docx文档中提取文本内容 使用Apache的第三方jar包,地址为https://poi.apache.org/ docx文档内容如图: 目录结构: 每个文件夹的名称为日期加上来源,例如:20180618医院,每个docx文档的名称是被...
  • 使用Python批量提取Word文档中的图片

    千次阅读 2022-01-25 15:56:44
    2.设置文档路径和图片路径 ,并用zipfile读取Word文件 doc_path = './a.docx' #这里更换你想要的路径 img_path = './img/' #这里更换你想要的路径 os.makedirs(img_path, exist_ok=True) doc = zipfile....
  • 用友U8帮助文档,包括8个部分,就是集成用友软件里面的帮助文档提取出来的。【进入用友目录或者2级菜单按F1就可以调出来的帮助文档,这个是用友书籍附带DVD光盘里面的文档,来出来分享,对于学习用友很有帮助,...
  • 文章目录doc格式批量转为docx批量提取docx文档的图片批量图片格式转换完整代码GUI图形化工具开发打包exe 日常工作,领导要求你将一份 Word 文档中的图片存储到一个文件夹内,你可能会一边内心崩溃,一边开始一张张...
  • JAVA_API1.6文档(中文)

    万次下载 热门讨论 2010-04-12 13:31:34
    java.awt.dnd Drag 和 Drop 是一种直接操作动作,许多图形用户界面系统中都会遇到它,它提供了一种机制,能够两个与 GUI 显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...
  • shift=3 --提取目标内容相对关键字的偏移量,可以是负值,表示目标内容关键字左侧,具体偏移几个字符可以预估,然后测试微调 length=3 --提取目标字符的长度 命令行显示“存放文档的文件夹名称” 是指源PDF文档...
  • 点上方“菜鸟学Python”,选择“星标” 第491篇原创干货,第一时间送达 最近有许多小伙伴想要一些自动化办公的福利小程序,今天就满足大家的需求。日常的办公过程,总少不了批量提取wor...
  • 2.使用DOS命令将文件夹的所有文件名字提取到一个txt文档上 (1) 要操作的文件夹下新建一个.txt 文件(任意名就行) (2) 新建的.txt文件输入代码 //@echo off 意思是批处理运行命令的时候不会一条一条的显示...
  • 用Python提取解析pdf文档中内容

    千次阅读 2019-03-22 17:04:00
    用Python提取解析pdf文档中内容文章目录: 参考: 1、https://blog.csdn.net/tmaczt/article/details/82876018 # Tika库 2、https://blog.csdn.net/blmoistawinde/article/details/82051915 # pdfplumber 库 3、...
  • 前段时间,小编百度文库找资料文件时,感觉挺不错的文档,想下载下来放到手机上方便查看,然而几乎所有的文库文档都是要下载券才能下载的,都怪小编太穷,才想到要去寻找可以不登陆以及不使用下载券的情况下也能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,775
精华内容 50,710
关键字:

在文档中如何提取目录