数据分析进阶-Python提取Word文档中的表格信息

news/2024/7/7 21:33:10

前言

利用此方法针对大量的报名表进行信息提取~

安装工具包

pip install python-docx

表格信息

在这里插入图片描述

代码

注意读取的EXCEL文件只能是docx后缀的噢~若文件太多可利用以下方法批量转化

import os
import docx
import xlwt
import shutil
from win32com import client as wc

# 把doc文档转成docx文档
def convert_word(path, target_dir):
    filename = os.path.basename(path)
    rename = os.path.splitext(filename)
    new_file = target_dir + '/' + rename[0] + '.docx'
    source_path = os.path.abspath(path)
    target_path = os.path.abspath(new_file)
    word = wc.Dispatch('Word.Application')
    doc = word.Documents.Open(source_path)
    doc.SaveAs(target_path, 12)
    doc.Close()
    word.Quit()

表格信息提取

doc = docx.Document('报名表.docx')
tables = doc.tables
fields = [
        '姓名',
        '性别',
        '专业',
        '班级',
        '联系电话',
        '电子邮箱'
    ]
    
for table in tables:
    table_data = dict()
    for key in fields:
        table_data[key] = ''
        for row in table.rows:
            tmp_last = ''
            for cell in row.cells:
                text = cell.text.strip()
                if text == tmp_last:
                    continue
                if tmp_last in fields:
                    table_data[tmp_last] = text
                tmp_last = text.replace(' ', '')

http://www.niftyadmin.cn/n/4411283.html

相关文章

解决ATI显卡在ubuntu 9.10下开特效有点卡的问题

解决ATI 显卡在ubuntu 下开特效有点卡的问题 ATI 3400系列显卡在ubuntu 9.10 karmic 下开特效后,感觉会有点卡,比如说在任务栏切换窗口的时候,可以感觉到明显的停顿。据说9.04 jaunty 下也有同样的问题。 具体的解决办法是通过pp…

数据分析进阶-Python绘制桑基图

前言 通过绘制桑基图来呈现不同时期用户的状态变更~ 代码 import pandas as pddata pd.read_excel(data-2.xlsx, sheet_name Sheet2)# 取桑基图的节点 node list() each_node list() for i in data[col1]:each_node.append(i)for i in data[col2]:each_node.append(i)ea…

数据分析进阶-Python批量解压加密文件

前言 由于工作需要,得批量解压一批带有密码的压缩文件,这里提供两种版本的解压代码~ 第一种版本(对于大文件解压耗时较久) import os import zipfiledef unzip_file():path_in "C:\data"path_out "C:\output&…

数据分析进阶 - 使用Pyecharts搭建数据看板

前言 之前尝试过多种数据可视化的方式,包括Tableau 、Superset 、matplotlib 等,在之前的博客中都有所介绍,今天主要介绍如何利用Pyecharts来搭建数据看板~ 温馨提示 如果在使用过程中遇到无法渲染(即输出均为空白)…

【webrtc】rtc::Thread和std::thread 的用法

全局线程 itsfolf/Discord-Screenshare-Linux#include "rtc_base/thread.h"rtc::Thread* GlobalLoopThread() {static auto result = []

VC-Debug-Release出错的问题解决办法

DEBUG和RELEASE 版本差异及调试相关问题&#xff1a; I. 内存分配问题 1. 变量未初始化。下面的程序在debug中运行的很好。 thing * search(thing * something) BOOL found; for(int i 0; i < whatever.GetSize(); i) { …

VC2005程序的一个运行错误 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。

VC2005程序的一个运行错误 由于应用程序配置不正确&#xff0c;应用程序未能启动。重新安装应用程序可能会纠正这个问题。 方法一&#xff1a; 在C:/Program Files/Microsoft Visual Studio 8/VC/redist/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT 下找到了下列文件&#…