资源简介
python对A2L文件解析的脚本,参照ASAP2文件协议,提出为dataframe格式,可以直接用dataframe筛选A2L中标定量的信息
代码片段和文件信息
#-*- coding:utf-8 -*-
import re
import pandas as pd
import time
class IncaA2L:
def __init__(self filename):
self.filename = filename
self.CharacDaF = pd.Dataframe()
self.RecDaF = pd.Dataframe()
self.ConvMothDaF = pd.Dataframe()
with open(self.filename) as self.read_file:
self.content = self.read_file.read()
self.content = re.sub(r“(/\*.*\*/)“ ““ self.content) #删除注释
#---------------------------------------------------#
# description:通过datatype来确定data的长度
# 输入:数据类型对应的字符
# 返回值为长度:124
#---------------------------------------------------#
def FindLength(self DataType):
if DataType == ‘UBYTE‘:
return 1
elif DataType == ‘SBYTE‘:
return 1
elif DataType == ‘UWORD‘:
return 2
elif DataType == ‘SWORD‘:
return 2
elif DataType == ‘ULONG‘:
return 4
elif DataType == ‘SLONG‘:
return 4
else:
return 4
#----------------------------------------#
# 返回值为Dataframe:DataTypeName DataType
#
#----------------------------------------#
def RECORD_LAYOUT_Export(self):
#找出所有的描述数据类型块的区域
DataType = re.findall( r‘/begin *?RECORD_LAYOUT([\S\s]*?)/end *?RECORD_LAYOUT‘ self.content re.M|re.I)
#创建一个空白dataframe用于存放所有数据类型信息
DFDataTypeInfo = pd.Dataframe()
#创建一个空白list用于存放name
ListDataTypeName = []
#创建一个空白list用于存放具体信息
ListDataTypeInfo = []
#处理具体一个的数据类型块
for i in DataType:
#去除其中某个描述数据类型块的前后空白字符
i = i.strip()
#创建一个临时的list用于提取数据类型name以空白字符分隔
TempList = re.split(‘[\s]*‘ i)
ListDataTypeName.append(TempList[0])
#对该块进行按行分隔
DataTypeInfoLine = re.split(‘\n‘ i)
#创建一个空白字典用于存放具体数据类型信息
DicDataTypeInfo = {}
#对该块信息描述进行提取
for j in DataTypeInfoLine:
#去除信息描述行的前后空白字符
j = j.strip()
#如果j不是数据类型name那一行
if j != TempList[0]:
#对信息描述行按空白符进行分隔
DataTypeInfo = j.split()
‘‘‘
/begin RECORD_LAYOUT ValA_Ws16
FNC_VALUES 1.0 SWORD COLUMN_DIR DIRECT
ALIGNMENT_WORD 2.0
ALIGNMENT_LONG 4.0
ALIGNMENT_FLOAT32_IEEE 4.0
ALIGNMENT_FLOAT64_IEEE 4.0
/end RECORD_LAYOUT
‘‘‘
#数据类型对应的描述对象行,分隔后都大于3个成员,过滤掉不需要的信息,如上
if len(DataTypeInfo) >= 3:
#DataTypeInfo[0]:数据类型对应的描述对象,DataTypeInfo[2]:数据类型
DicDataTypeInfo[DataTypeInfo[0]] = DataTypeInfo[2]
#将数据类型信息字典添加到list
List
- 上一篇:python遗传算法 源代码
- 下一篇:python简单神经网络
相关资源
- python简单神经网络
- python遗传算法 源代码
- PyQt5中异步刷新UI+Python中的多线程+p
- 一加云服务照片批量导出 Python爬虫
- 使用Python编写LOF算法
- python视频资料.zip
- Python基础项目配套代码
- Python调用QQ截图
- util_python
- label.png为16位转8位python代码
- 1.2.5的windows python-mysqlpip安装,MySQL_
- _sqlite3.cpython-38-x86_64-linux-gnu.rar
- python写的自动发送QQ邮件的脚本
- python 远程获取文件
- python从入门到精通视频全60集百度云链
- Python基础教程(全套21集)
- python抓取新浪微博数据
- 小甲鱼零基础入门学习Python全套源码
- SCU微服务自动填写
- 基于socket的python聊天
- python之des加密算法
- Python爬虫抓取Ebay页面
- python api chm
- Python 搜狗词库的批量
- 无人车路径规划算法matlab+python代码
- 粒子群优化BPNN的python实现代码.rar
- 基于Django的python信息管理系统,用于
- python
- 多层BP神经网络参数高自由度Python
- 爬取b站前百视频名称和链接
评论
共有 条评论