xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 35KB
    文件類型: .py
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-14
  • 語(yǔ)言: Python
  • 標(biāo)簽: python??

資源簡(jiǎn)介

python對(duì)A2L文件解析的腳本,參照ASAP2文件協(xié)議,提出為dataframe格式,可以直接用dataframe篩選A2L中標(biāo)定量的信息

資源截圖

代碼片段和文件信息

#-*-?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:通過(guò)datatype來(lái)確定data的長(zhǎng)度
????#?輸入:數(shù)據(jù)類型對(duì)應(yīng)的字符
????#?返回值為長(zhǎng)度: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):

????????#找出所有的描述數(shù)據(jù)類型塊的區(qū)域
????????DataType?=?re.findall(?r‘/begin?*?RECORD_LAYOUT([\S\s]*?)/end?*?RECORD_LAYOUT‘?self.content?re.M|re.I)


????????#創(chuàng)建一個(gè)空白dataframe用于存放所有數(shù)據(jù)類型信息
????????DFDataTypeInfo?=?pd.Dataframe()
????????#創(chuàng)建一個(gè)空白list用于存放name
????????ListDataTypeName?=?[]
????????#創(chuàng)建一個(gè)空白list用于存放具體信息
????????ListDataTypeInfo?=?[]

????????#處理具體一個(gè)的數(shù)據(jù)類型塊
????????for?i?in?DataType:
????????????#去除其中某個(gè)描述數(shù)據(jù)類型塊的前后空白字符
????????????i?=?i.strip()

????????????#創(chuàng)建一個(gè)臨時(shí)的list用于提取數(shù)據(jù)類型name以空白字符分隔
????????????TempList?=?re.split(‘[\s]*‘?i)
????????????ListDataTypeName.append(TempList[0])

????????????#對(duì)該塊進(jìn)行按行分隔
????????????DataTypeInfoLine?=?re.split(‘\n‘?i)

????????????#創(chuàng)建一個(gè)空白字典用于存放具體數(shù)據(jù)類型信息
????????????DicDataTypeInfo?=?{}

????????????#對(duì)該塊信息描述進(jìn)行提取
????????????for?j?in?DataTypeInfoLine:
????????????????#去除信息描述行的前后空白字符
????????????????j?=?j.strip()
????????????????#如果j不是數(shù)據(jù)類型name那一行
????????????????if?j?!=?TempList[0]:

????????????????????#對(duì)信息描述行按空白符進(jìn)行分隔
????????????????????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
????????????????????‘‘‘

????????????????????#數(shù)據(jù)類型對(duì)應(yīng)的描述對(duì)象行,分隔后都大于3個(gè)成員,過(guò)濾掉不需要的信息,如上
????????????????????if?len(DataTypeInfo)?>=?3:
????????????????????????#DataTypeInfo[0]:數(shù)據(jù)類型對(duì)應(yīng)的描述對(duì)象,DataTypeInfo[2]:數(shù)據(jù)類型
????????????????????????DicDataTypeInfo[DataTypeInfo[0]]?=?DataTypeInfo[2]
????????????#將數(shù)據(jù)類型信息字典添加到list
????????????List

評(píng)論

共有 條評(píng)論