资源简介
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简单神经网络
相关资源
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
- 一个简单的python爬虫
- csv文件行列转换python实现代码
- Python操作Mysql教程手册
- Python Machine Learning Case Studies
- python获取硬件信息
- 量化交易(附python常见函数的使用方
评论
共有 条评论