亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python解析CDD文件的代碼詳解

 更新時間:2022年05月20日 10:18:14   作者:螞蟻小兵  
這篇文章主要介紹了Python解析CDD文件的方法,使用Python 腳本解析CDD文件,統(tǒng)一定義,一鍵生成,十分快捷,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

在實際診斷測試開發(fā)中,我們寫測試腳本會用到CDD文件中的診斷,常規(guī)做法可能是用到哪個就定義哪個,這樣做的弊端是有可能造成重復定義,或者整個工程中有不同的變量名,較為好的方式是頭文件中統(tǒng)一定義,如果人去單獨定義的話,CDD中診斷有比較多,浪費時間,所以基于這個需求,我想到了可以用Python 腳本解析CDD文件,統(tǒng)一定義,一鍵生成,十分快捷。
測試軟硬件環(huán)境:
Win10 X64
Python 3.8
PyQt5 5.16.5

基本介紹

1. 如下圖是工具的界面,輸入是cdd 文件,輸出 是 bwm_test_DiagRequest_Variables.cin,這個頭文件可以直接放在工程里,這樣用到哪個診斷就可以直接使用了,無需重復定義或者單獨定義

2.代碼簡單介紹

  • ParseCdd_Main.py 是主函數(shù)所在文件
  • cdd.py 是解析cdd文件的邏輯處理文件
  • parsecdd.py 是 QtDesigner 生成的UI文件

3?? cdd文件結構分析

  • 打開cdd文件,看到是xml格式的,這就好辦了,那就一定能夠找到它的組成結構的,找到后直接用lxml 庫去解析
  • 核心代碼就這一行 ,可以字節(jié)跟著這個繼承關系去找找看
  • ecu = cddXML.xpath("//VAR//DIAGINST//SERVICE//SHORTCUTNAME/TUV/text()")

da

 def parseCdd(self,filename):
        cddXML = etree.parse(filename)
        if cddXML:
            ecu = cddXML.xpath("http://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!")

本節(jié)測試使用源碼放在Git上了,有需自取

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

到此這篇關于Python解析CDD文件的文章就介紹到這了,更多相關Python解析CDD文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python實現(xiàn)自動運行代碼的方法詳解

    Python實現(xiàn)自動運行代碼的方法詳解

    在軟件開發(fā)和數(shù)據(jù)科學領域,自動運行代碼是提高效率和確保一致性的關鍵,本文將深入探討如何使用Python實現(xiàn)自動運行代碼的各種方法,希望對大家有所幫助
    2023-12-12
  • python 最簡單的實現(xiàn)適配器設計模式的示例

    python 最簡單的實現(xiàn)適配器設計模式的示例

    這篇文章主要介紹了python 最簡單的實現(xiàn)適配器設計模式的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • python 中文亂碼問題深入分析

    python 中文亂碼問題深入分析

    一直以來,python中的中文編碼就是一個極為頭大的問題,經常拋出編碼轉換的異常,python中的str和unicode到底是一個什么東西呢?
    2011-03-03
  • python實現(xiàn)雙人版坦克大戰(zhàn)游戲

    python實現(xiàn)雙人版坦克大戰(zhàn)游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)雙人版坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • conda虛擬環(huán)境默認路徑的修改方法

    conda虛擬環(huán)境默認路徑的修改方法

    最近發(fā)現(xiàn)我linux系統(tǒng)中的/dev/root目錄利用率占用了100%,這對后面文件的操作帶來了一些麻煩,下面這篇文章主要給大家介紹了關于conda虛擬環(huán)境默認路徑的修改方法,需要的朋友可以參考下
    2022-07-07
  • django自帶的權限管理Permission用法說明

    django自帶的權限管理Permission用法說明

    這篇文章主要介紹了django自帶的權限管理Permission用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 用python爬取歷史天氣數(shù)據(jù)的方法示例

    用python爬取歷史天氣數(shù)據(jù)的方法示例

    這篇文章主要介紹了用python爬取歷史天氣數(shù)據(jù)的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Python 創(chuàng)建子進程模塊subprocess詳解

    Python 創(chuàng)建子進程模塊subprocess詳解

    這篇文章主要介紹了Python 創(chuàng)建子進程模塊subprocess詳解,本文詳細講解了subprocess模塊的方法、參數(shù)、使用實例等,需要的朋友可以參考下
    2015-04-04
  • Python Matplotlib 庫使用指南

    Python Matplotlib 庫使用指南

    這篇文章主要介紹了Python Matplotlib 庫使用基本指南,通過本教程,我們學習了使用 Matplotlib 創(chuàng)建各種類型的圖表和圖形,Matplotlib 提供了豐富的函數(shù)和選項,以滿足不同的數(shù)據(jù)可視化需求,需要的朋友可以參考下
    2024-01-01
  • python 類中函數(shù)名前后加下劃線的具體使用

    python 類中函數(shù)名前后加下劃線的具體使用

    在Python編程語言中,函數(shù)名前后有下劃線是一種常見的命名約定,,被廣泛應用于類中的函數(shù),本文將介紹下劃線命名風格的由來、使用場景以及如何正確應用它,感興趣的可以了解一下
    2024-01-01

最新評論