返回顶部
首页 > 资讯 > 后端开发 > Python >Python解析CDD文件的代码详解
  • 780
分享到

Python解析CDD文件的代码详解

2024-04-02 19:04:59 780人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言基本介绍前言 在实际诊断测试开发中,我们写测试脚本会用到CDD文件中的诊断,常规做法可能是用到哪个就定义哪个,这样做的弊端是有可能造成重复定义,或者整个工程中有不同的变量名,

前言

在实际诊断测试开发中,我们写测试脚本会用到CDD文件中的诊断,常规做法可能是用到哪个就定义哪个,这样做的弊端是有可能造成重复定义,或者整个工程中有不同的变量名,较为好的方式是头文件中统一定义,如果人去单独定义的话,CDD中诊断有比较多,浪费时间,所以基于这个需求,我想到了可以用python 脚本解析CDD文件,统一定义,一键生成,十分快捷。
测试软硬件环境:
Win10 X64
Python 3.8
PyQt5 5.16.5

基本介绍

1. 如下图是工具的界面,输入是cdd 文件,输出 是 bwm_test_DiagRequest_Variables.cin,这个头文件可以直接放在工程里,这样用到哪个诊断就可以直接使用了,无需重复定义或者单独定义

2.代码简单介绍

  • ParseCdd_Main.py 是主函数所在文件
  • cdd.py 是解析cdd文件的逻辑处理文件
  • parsecdd.py 是 QtDesigner 生成的UI文件

3️⃣ cdd文件结构分析

  • 打开cdd文件,看到是xml格式的,这就好办了,那就一定能够找到它的组成结构的,找到后直接用lxml 库去解析
  • 核心代码就这一行 ,可以字节跟着这个继承关系去找找看
  • ecu = cddXML.xpath("//VAR//DIAGINST//SERVICE//SHORTCUTNAME/TUV/text()")

da

 def parseCdd(self,filename):
        cddXML = etree.parse(filename)
        if cddXML:
            ecu = cddXML.xpath("//VAR//DIAGINST//SERVICE//SHORTCUTNAME/TUV/text()")
            if ecu:
                self.diaGCan = ''
                for i in ecu:
                    temp = i.replace("/","_").replace("#","_").replace(": ","_").replace(":","_").replace("  ","_").replace(" - ","_").replace("-","_").replace(" ","_")
                    self.diagCan = self.diagCan + "\n" + "diagRequest    " + temp +"    req_" + temp + ";"
                self.diagCan = "variables\n{\n%s\n}"%self.diagCan
                print(self.diagCan)
                newFile = os.path.splitext(filename)[0] + '_DiagRequest_Variables.cin'
                with open(newFile,'w') as f:
                    f.write(self.diagCan)
            else:
                print("parse cdd file failed!")
        else:
            print("parse file failed!")

本节测试使用源码放在git上了,有需自取

https://GitHub.com/yiyuchenguang/CANoeAbout.git

到此这篇关于Python解析CDD文件的文章就介绍到这了,更多相关Python解析CDD文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python解析CDD文件的代码详解

本文链接: https://lsjlt.com/news/118183.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python解析CDD文件的代码详解
    目录前言基本介绍前言 在实际诊断测试开发中,我们写测试脚本会用到CDD文件中的诊断,常规做法可能是用到哪个就定义哪个,这样做的弊端是有可能造成重复定义,或者整个工程中有不同的变量名,...
    99+
    2024-04-02
  • python解析.pyd文件的详细代码
    有的时候,为了对python文件进行加密,会把python模块编译成.pyd文件,供其他人调用。拿到一个.pyd文件,在没有文档说明的情况下,可以试试查看模块内的一些函数和类的用法。...
    99+
    2024-04-02
  • Python编程密码学文件加密与解密代码解析
    目录本章要点1 纯文本文件2 使用置换密码加密文件的源代码transpositionFileCipher.py3 运行置换密码加密文件程序的样例4 文件操作4.1 打开文件4.2 数...
    99+
    2024-04-02
  • 基于Python的XML格式的文件示例代码详解
    XML文件是可拓展标记语言,是一种简单的数据存储语言,被设计用来传输和存储数据 在Python中XML的一些方法 读取文件和内容 #引用xml模块 from xml.etree ...
    99+
    2024-04-02
  • Android使用Pull解析器解析xml文件的实现代码
    2个类:1个实体类Person.java,1个继承Activity的类   1.Person.java 代码如下:package com.mrzhu.work_1_...
    99+
    2022-06-06
    xml文件 解析xml XML Android
  • Python+OCR实现文档解析的示例代码
    目录介绍环境设置检测提取介绍 文档解析涉及检查文档中的数据并提取有用的信息。它可以通过自动化减少了大量的手工工作。一种流行的解析策略是将文档转换为图像并使用计算机视觉进行识别。而文档...
    99+
    2024-04-02
  • 详解python 发送邮件实例代码
    python 发送邮件实例 文件形式的邮件 #!/usr/bin/env python3 #coding: utf-8 import smtplib from emailmimetext impo...
    99+
    2022-06-04
    发送邮件 详解 实例
  • Python实现解析ini配置文件的示例详解
    目录楔子ini 文件特殊格式小结楔子 在开发过程中,配置文件是少不了的,只不过我们有时会将 py 文件作为配置文件(config.py),然后在其它的模块中直接导入。这样做是一个好主...
    99+
    2024-04-02
  • Python实现解析yaml配置文件的示例详解
    目录楔子字典数组标量引用生成 yaml 文件楔子 前面我们介绍了 ini 格式的配置文件,本次来看看 yaml,它的表达能力相比 ini 更加的强大。yaml 文件以 .yml 结尾...
    99+
    2024-04-02
  • 【代码详解】nerf-pytorch代码逐行分析
    目录 前言run_nerf.pyconfig_parser()train()create_nerf()render()batchify_rays()render_rays()raw2outpu...
    99+
    2023-09-01
    pytorch 深度学习 python
  • servlet下载文件实现代码详解(五)
    本文实例为大家分享了servlet下载文件的具体代码,供大家参考,具体内容如下1.servlet下载文件  servlet下载文件就是将服务器端的文件传输到客户端。2案例下载文件servlet类package com.learn;impor...
    99+
    2023-05-31
    servlet 下载 实现代码
  • MybatisPlus代码生成器含XML文件详解
    目录MybatisPlus代码生成器含XML所需依赖代码如下MybatisPlus代码生成器,自用版本不带xmlMybatisPlus代码生成器含XML 所需依赖         &...
    99+
    2024-04-02
  • python解析elf文件
    #!/usr/bin/python import struct import sys elfhdr = {} def verify_elf(filename): f = open(filename,'rb') elfident = ...
    99+
    2023-01-31
    文件 python elf
  • python 解析 eml文件
    #-*- encoding: gb2312 -*- import email fp = open('xxxx.eml', "r") msg = em...
    99+
    2023-01-31
    文件 python eml
  • Apache文件解析漏洞详解
    今天继续给大家介绍渗透测试相关知识,本文主要内容是Apache文件解析漏洞详解。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:...
    99+
    2023-09-04
    apache 文件上传 文件解析漏洞 Wen安全 渗透测试
  • C++BoostPropertyTree解析INI文件详解
    目录前言什么是property_tree?实现代码前言 PropertyTree是一个非常牛叉的东西!虽然很小,但是,相当需要,相当重要!因为,很多的东西,我们不需要去开发,只需要去...
    99+
    2024-04-02
  • Python 解压缩文件详解
    zipfile模块及相关方法介绍: 1 压缩 1.1 创建zipfile对象 zipfile.ZipFile(file, mode='r', compression=0, allowZip64=True, compresslevel=Non...
    99+
    2023-01-31
    解压缩 详解 文件
  • python解析PDF程序代码
    说在前面 和word的文本相比PDF更类似于一张张图片,图上放着一个个文字。对其的解析是将图片上的文字提取到text文件中,方便之后的分析。 添加依赖 在python的环境中安装PDFminer3k,不要装错了,一开...
    99+
    2022-06-02
    python解析PDF python PDF代码
  • python装饰器代码解析
    目录1.装饰器通用模型2.多个装饰器装饰的函数执行3.带参数的装饰器4.类装饰器1.装饰器通用模型 def wrapper(fn):     def inner(*args, **k...
    99+
    2024-04-02
  • Python 装饰器代码解析
    前言: 以往看到我博客的小伙伴可能都知道,我的前言一般都是吐槽和讲废话环节,哈哈哈哈。今天难得休息,最近可真是太忙了,博主已经连续一年都在996了,所以最近没怎么学习新东西,只能回顾...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作