栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用python-docx将行业标准元数据转化为CSV文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用python-docx将行业标准元数据转化为CSV文件

背景

最近接触到一个需求:需要将行业标准中定义的元数据【如交通运输行业标准–交通信息基础数据元】导入到系统中,
行业标准是docx文档。
想利用程序自动将元数据转换为CSV文件甚至SQL语句,减少项目实施中的工作量。

实现

python-docx是一个用于创建和更新Microsoft Word (.docx)文件的Python库

使用python-docx 可以方便的获取文档段落内容 及 表格信息

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
from docx import document

def printTable(doc):
    tables = doc.tables #获取文件中的表格集

    for table in tables:
        for row in table.rows:  # 从表格第一行开始循环读取表格数据
            cols = []
            for cell in row.cells:
                cols.append(cell.text)
            printMsg(','.join(cols))

def printParagaphs(doc):
    paragraphs = doc.paragraphs
    '''
    只打印元数据目录名称及定义的内容
    元数据目录,类似于'4. 3. 1. 7  基层层数
    元数据目录下是具体的元数据定义,类似于
    	分类编号:GL010100001
    	数据元名称:路线编号
    	英文名称:HighwayRouteNumber
    	中文全拼:lu-xian-bian-hao
    注意: 三个正则表达式,需要根据实际情况进行调整
    '''
    metaDirRe = re.compile(r'[s.1-9]{10,}')
    nometaDirRe = re.compile(r'[s.1-9]{1,9}')
    endmetaDirRe = re.compile(r'公路信息基础数据元值域代码集')
    isContinue = False
    for i in range(len(paragraphs)):
        content = paragraphs[i].text
        if metaDirRe.match(content):
            isContinue = True
        elif nometaDirRe.match(content):
            isContinue = False
        elif endmetaDirRe.match(content):
            isContinue = False

        if isContinue:
            printMsg(content)


space_patten = re.compile(r'([u4e00-u9fa5])s+([u4e00-u9fa5])')
def printMsg(content):
    content = space_patten.sub(r'12', content).replace('n', '').replace('r', '')
    if len(content) > 5:
        print(content)

fileName='交通信息基础数据元+第2部分:公路信息基础数据元.docx'
document = document(fileName) #读入文件
# printTable(document)
printParagaphs(document)

参考

python-docx
python-docx documentation

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/325677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号