使用python将标准结构化处理,通过pdf转换成word转换成txt转换成excel

下载标准

可以选择 国家标准全文公开 (samr.gov.cn)icon-default.png?t=N4HBhttps://openstd.samr.gov.cn/bzgk/gb/等网站下载

PDF转换

可根据自己资源选择使用夸克等工具

一定记住选择好识别区域,一般扫描软件文档部件识别能力不强

WORD转换

复制粘贴到txt就行,顺便做一下批量的识别符号和格式错误的调整

用python进行TXT转换EXCEL

需要提前安装 xlwt 和 pandas 插件

import re
#将字典导出为excel
import xlwt
import pandas as pd
def export_excel(export):
    #将字典列表转换为DataFrame
    pf = pd.DataFrame(list(export))
   #指定生成的Excel表格名称,'./output.xlsx' 为存放文件地址
    file_path = pd.ExcelWriter('./output.xlsx') 
   #输出
    pf.to_excel(file_path,index = False)
    #保存表格
    file_path._save()
#以上可使用 export_excel(export) 独立执行

# 打开需要分析的TXT,"input.txt" 为分析文件地址
f = open("input.txt",encoding='utf-8' )  
#通过通配符指定各层级和其他列信息,并指定需要提前部署的变量,以当前示例,层级1为必要层级,层级2主要是为了区分,进行另起一行作用,变量row是整理后的每行的信息,变量sheet是整理后的全部信息
title1 = r'(\d+)\.(\d+)(\s)'   
title2 = r'(\d+)\.(\d+)\.(\d+)(\s)'
lists = ["中文名称","英文名称","缩写名","说明","数据类型及格式","约束/条件","值域","同义词","最大出现次数","计量单位","备注"]
row = {}
sheet = []

#读取一行数据
line = f.readline()

#当读取的行不为空时
while line:
    #用通配符判断是否符合层级1
    if re.match(title1,line): 
    #序号为 re.match(title1,line).group() ,本示例需去除序号
        level = re.sub(r'\s',"",re.sub(title1,"",line))        
    else:
        #用通配符判断是否符合层级2,是否为新的一行
        if re.match(title2,line):
            #如果开启新的一行,则将旧的一行写入,并开启新的一行
            if row:                
                sheet.append(row)
            row = {}
            row["层级1"] = level
        #不是新行,则持续查找并写入字典
        else:
            for i in lists:
                if re.match(i,line):
                    row[i] = re.sub(r'\s',"",re.sub(i+":","",line))     
    line = f.readline()
#将最后一行补录
sheet.append(row)
export_excel(sheet)
f.close()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值